зеркало из https://github.com/mozilla/gecko-dev.git
Checking in for Ulrich Drepper. Bug #99246. r=beard, sr=brendan
This commit is contained in:
Родитель
38da9ef8b0
Коммит
3b2127bd59
|
@ -2406,7 +2406,7 @@ dnl ========================================================
|
||||||
AC_PROG_GCC_TRADITIONAL
|
AC_PROG_GCC_TRADITIONAL
|
||||||
AC_FUNC_MEMCMP
|
AC_FUNC_MEMCMP
|
||||||
AC_CHECK_FUNCS(random strerror lchown fchmod snprintf localtime_r statvfs memmove rint)
|
AC_CHECK_FUNCS(random strerror lchown fchmod snprintf localtime_r statvfs memmove rint)
|
||||||
AC_CHECK_FUNCS(nl_langinfo)
|
AC_CHECK_FUNCS(nl_langinfo strtok_r)
|
||||||
|
|
||||||
AC_LANG_CPLUSPLUS
|
AC_LANG_CPLUSPLUS
|
||||||
AC_CACHE_CHECK(
|
AC_CACHE_CHECK(
|
||||||
|
|
|
@ -393,6 +393,18 @@ standard_java_packages[] = {
|
||||||
{NULL, NULL, 0, 0}
|
{NULL, NULL, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* On systems which provide strtok_r we'll use that function to avoid
|
||||||
|
* problems with non-thread-safety.
|
||||||
|
*/
|
||||||
|
#if HAVE_STRTOK_R
|
||||||
|
# define STRTOK_1ST(str, seps, res) strtok_r (str, seps, &res)
|
||||||
|
# define STRTOK_OTHER(seps, res) strtok_r (res, seps, &res)
|
||||||
|
#else
|
||||||
|
# define STRTOK_1ST(str, seps, res) strtok (str, seps)
|
||||||
|
# define STRTOK_OTHER(seps, res) strtok (NULL, seps)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Pre-define a hierarchy of JavaPackage objects.
|
* Pre-define a hierarchy of JavaPackage objects.
|
||||||
* Pre-defining a Java package at initialization time is not necessary, but
|
* Pre-defining a Java package at initialization time is not necessary, but
|
||||||
|
@ -414,6 +426,9 @@ pre_define_java_packages(JSContext *cx, JSObject *global_obj,
|
||||||
|
|
||||||
/* Iterate over all pre-defined Java packages */
|
/* Iterate over all pre-defined Java packages */
|
||||||
for (package_def = predefined_packages; package_def->name; package_def++) {
|
for (package_def = predefined_packages; package_def->name; package_def++) {
|
||||||
|
#if HAVE_STRTOK_R
|
||||||
|
char *nextstr;
|
||||||
|
#endif
|
||||||
package_name = path = NULL;
|
package_name = path = NULL;
|
||||||
|
|
||||||
parent_obj = global_obj;
|
parent_obj = global_obj;
|
||||||
|
@ -423,7 +438,7 @@ pre_define_java_packages(JSContext *cx, JSObject *global_obj,
|
||||||
|
|
||||||
/* Walk the chain of JavaPackage objects to get to the parent of the
|
/* Walk the chain of JavaPackage objects to get to the parent of the
|
||||||
rightmost sub-package in the fully-qualified package name. */
|
rightmost sub-package in the fully-qualified package name. */
|
||||||
for (simple_name = strtok(package_name, "."); simple_name /*1*/; simple_name = strtok(NULL, ".")) {
|
for (simple_name = STRTOK_1ST(package_name, ".", nextstr); simple_name /*1*/; simple_name = STRTOK_OTHER(".", nextstr)) {
|
||||||
jsval v;
|
jsval v;
|
||||||
|
|
||||||
if (!simple_name) {
|
if (!simple_name) {
|
||||||
|
@ -444,7 +459,7 @@ pre_define_java_packages(JSContext *cx, JSObject *global_obj,
|
||||||
|
|
||||||
/* New package objects should only be created at the terminal
|
/* New package objects should only be created at the terminal
|
||||||
sub-package in a fully-qualified package-name */
|
sub-package in a fully-qualified package-name */
|
||||||
if (strtok(NULL, ".")) {
|
if (STRTOK_OTHER(".", nextstr)) {
|
||||||
JS_ReportErrorNumber(cx, jsj_GetErrorMessage, NULL,
|
JS_ReportErrorNumber(cx, jsj_GetErrorMessage, NULL,
|
||||||
JSJMSG_BAD_PACKAGE_PREDEF,
|
JSJMSG_BAD_PACKAGE_PREDEF,
|
||||||
package_def->name);
|
package_def->name);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче