No, I believe the correct way is

 va_list ap;
 va_start(ap, msg);
 std::string str;
 StringAppendV(&result, format, ap);
 va_end(ap);

 XmlReader* reader = static_cast<XmlReader*>(context);
 reader->errors_.append(str);

Weird that there's no StringPrintV() in string_util.

On Mon, Dec 7, 2009 at 3:13 PM, Antoine Labour <pi...@chromium.org> wrote:
>
>
> On Mon, Dec 7, 2009 at 2:50 PM, SOFIA TAHSEEN <dnk...@motorola.com> wrote:
>>
>> Hi Antoine/Joel,
>> When I try to build using the following make command I get the error as
>> below...Have you seen this earlier :
>> make -r -j3 BUILDTYPE=Release chrome
>> (I have a dual core so used -j3)
>>   CXX(target)
>> out/Release/obj.target/common/chrome/common/histogram_synchronizer.o
>>   CXX(target)
>> out/Release/obj.target/common/chrome/common/important_file_writer.o
>>   CXX(target)
>> out/Release/obj.target/common/chrome/common/jstemplate_builder.o
>>   CXX(target) out/Release/obj.target/common/chrome/common/libxml_utils.o
>>   CXX(target) out/Release/obj.target/common/chrome/common/logging_chrome.o
>> cc1plus: warnings being treated as errors
>> chrome/common/libxml_utils.cc: In static member function 'static void
>> XmlReader::GenericErrorCallback(void*, const char*, ...)':
>> chrome/common/libxml_utils.cc:38: error: cannot pass objects of non-POD
>> type 'struct va_list' through '...'; call will abort at runtime
>> make: *** [out/Release/obj.target/common/chrome/common/libxml_utils.o]
>> Error 1
>> make: *** Waiting for unfinished jobs....
>
> +chromium-dev
> Sofia, I haven't seen that error. Which compiler did you end up using ?
> However the code does look suspicious, passing va_list through "...":
> void XmlReader::GenericErrorCallback(void* context, const char* msg, ...) {
>   va_list args;
>   va_start(args, msg);
>   XmlReader* reader = static_cast<XmlReader*>(context);
>   reader->errors_.append(StringPrintf(msg, args));
> }
> Chromium C++ experts: Is that supposed to be legal, or even portable ? It
> sounds like StringAppendV would be preferable here.
> Antoine
>
> --
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
> http://groups.google.com/group/chromium-dev

-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev

Reply via email to