Spidermonkey: отправьте аргументы из JavaScript на C ++ - PullRequest
0 голосов
/ 25 июня 2018

Я использую Spidermonkey для разбора Pacfile в iOS. Я регистрирую функцию с кодом ниже.

if (!JS_DefineFunction(cx, globalHandle, "dnsResolve", (JSNative) dns_resolve, 1, 1)) {
    print_error("%s %s\n", error_prefix,
                "Could not define dnsResolve in JS context.");

    return 0;   }

Но когда я вызываю dnsResolve метод с аргументом, я получаю значения мусора. Я использую приведенный ниже код для разбора аргументов

static bool dns_resolve(JSContext *cx, unsigned argc, jsval *argv)
{
    JS::CallArgs args = CallArgsFromVp(argc, argv);
    JSString *temp = JS::ToString(cx, args[0]);

    char* name = JS_EncodeString(cx, temp);
    JS_ConvertArgumentsVA(cx, args, name, NULL);
    return true;
}

Хотя тот же код работает на других платформах, таких как Android, MAC, Windows, в то время как в iOS выдает значения мусора.

...