Reviewers: Erik Corry,
Description:
Fixed pointer vs. va_list overloading problem occuring in gcc 3.3 (used
for ARM build).
It seems that when calling a method that has two overloaded versions
like this:
f(char* format, ...)
f(char* format, va_list args)
with a second pointer argument: f("format", pointer), the second version
is picked up.
I've found a description of a similar issue here:
http://bugs.gentoo.org/63112
So, to resolve this ambiguity, I've named such LogMessageBuilder's
Append functions differently.
Please review this at http://codereview.chromium.org/125125
Affected files:
M src/log-utils.h
M src/log-utils.cc
M src/log.cc
Index: src/log-utils.cc
diff --git a/src/log-utils.cc b/src/log-utils.cc
index
b3b3192b2fb26ed5d82d13b0714ba04e58e773d3..028eb3a015b1ce782304442df652839156e68ee5
100644
--- a/src/log-utils.cc
+++ b/src/log-utils.cc
@@ -215,13 +215,13 @@ void LogMessageBuilder::Append(const char*
format, ...) {
Log::kMessageBufferSize - pos_);
va_list args;
va_start(args, format);
- Append(format, args);
+ AppendVA(format, args);
va_end(args);
ASSERT(pos_ <= Log::kMessageBufferSize);
}
-void LogMessageBuilder::Append(const char* format, va_list args) {
+void LogMessageBuilder::AppendVA(const char* format, va_list args) {
Vector<char> buf(Log::message_buffer_ + pos_,
Log::kMessageBufferSize - pos_);
int result = v8::internal::OS::VSNPrintF(buf, format, args);
Index: src/log-utils.h
diff --git a/src/log-utils.h b/src/log-utils.h
index
fe6f01cac65d194310583cf03327c7c5b77f6823..ad669d53d76360bbf63874334734fb8149bf5d97
100644
--- a/src/log-utils.h
+++ b/src/log-utils.h
@@ -230,7 +230,7 @@ class LogMessageBuilder BASE_EMBEDDED {
void Append(const char* format, ...);
// Append string data to the log message.
- void Append(const char* format, va_list args);
+ void AppendVA(const char* format, va_list args);
// Append a character to the log message.
void Append(const char c);
Index: src/log.cc
diff --git a/src/log.cc b/src/log.cc
index
aae030a3aa31287806826224af25441e5dddc7fa..af49128eaa1c6eeb905ba33e0231ee88649d7fc8
100644
--- a/src/log.cc
+++ b/src/log.cc
@@ -402,7 +402,7 @@ void Logger::ApiEvent(const char* format, ...) {
LogMessageBuilder msg;
va_list ap;
va_start(ap, format);
- msg.Append(format, ap);
+ msg.AppendVA(format, ap);
va_end(ap);
msg.WriteToLogFile();
}
--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---