| # 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 |