Bug 553032 - change sprintf_append to be a varargs function; r?evilpie draft
authorTom Tromey <tom@tromey.com>
Wed, 12 Oct 2016 12:10:40 -0600
changeset 428051 cceecd10a08dba90d3fec9c366a152fc351da570
parent 428050 ad3fe833016c56e0fd4e950df0906da2338a676a
child 428052 8b9d0291f8119c708219cf42681bf43dc66ededc
push id33217
push userbmo:ttromey@mozilla.com
push dateFri, 21 Oct 2016 14:02:14 +0000
reviewersevilpie
bugs553032
milestone52.0a1
Bug 553032 - change sprintf_append to be a varargs function; r?evilpie MozReview-Commit-ID: I5aECiK5Coz
js/src/jsfriendapi.cpp
--- a/js/src/jsfriendapi.cpp
+++ b/js/src/jsfriendapi.cpp
@@ -758,21 +758,26 @@ FormatValue(JSContext* cx, const Value& 
     const char* found = strstr(buf, "function ");
     if (found && (found - buf <= 2))
         return "[function]";
     return buf;
 }
 
 // Wrapper for JS_sprintf_append() that reports allocation failure to the
 // context.
-template <typename... Args>
 static char*
-sprintf_append(JSContext* cx, char* buf, Args&&... args)
+MOZ_FORMAT_PRINTF(3, 4)
+sprintf_append(JSContext* cx, char* buf, const char* fmt, ...)
 {
-    char* result = JS_sprintf_append(buf, mozilla::Forward<Args>(args)...);
+    va_list ap;
+
+    va_start(ap, fmt);
+    char* result = JS_vsprintf_append(buf, fmt, ap);
+    va_end(ap);
+
     if (!result) {
         ReportOutOfMemory(cx);
         return nullptr;
     }
 
     return result;
 }