# HG changeset patch # Parent aae86c76643fd282c5e42c5bf784ccee2dc877a8 Backport js_strdup(). diff --git a/js/src/jscntxt.cpp b/js/src/jscntxt.cpp --- a/js/src/jscntxt.cpp +++ b/js/src/jscntxt.cpp @@ -709,6 +709,16 @@ js::PrintError(JSContext *cx, FILE *file return true; } +char * +js_strdup(JSContext *cx, const char *s) +{ + size_t n = strlen(s) + 1; + void *p = cx->malloc_(n); + if (!p) + return NULL; + return (char *)js_memcpy(p, s, n); +} + /* * The arguments from ap need to be packaged up into an array and stored * into the report struct. diff --git a/js/src/jscntxt.h b/js/src/jscntxt.h --- a/js/src/jscntxt.h +++ b/js/src/jscntxt.h @@ -2221,6 +2221,9 @@ js_ReportValueErrorFlags(JSContext *cx, extern const JSErrorFormatString js_ErrorFormatString[JSErr_Limit]; +char * +js_strdup(JSContext *cx, const char *s); + #ifdef JS_THREADSAFE # define JS_ASSERT_REQUEST_DEPTH(cx) JS_ASSERT((cx)->runtime()->requestDepth >= 1) #else