Hallo,
ich übergebe einer selbtgeschriebenen JavaScript-Funktion ein String
(eigentlich Byte-Array), welcher NICHT nullterminiert ist. D.h. er kann
auch Null-Bytes im String enthalten.
z.zt. übergebe ich im JS-Code String und Länge
1 | arr="1234\0005678";
|
2 | own_func(arr,arr.length)
|
Im C-Code der Funktion habe ich dann die Länge des Arrays/Strings zur
Verfügung, da ich ja strlen() nicht verwenden kann.
1 | static JSBool own_func(JSContext *cx, JSObject *obj,
|
2 | uintN argc, jsval *argv, jsval *rval) {
|
3 | const char *str;
|
4 | jsdouble dbl;
|
5 | int len;
|
6 | if (!JS_ConvertArguments(cx, argc, argv, "sd",
|
7 | &str,&dbl)) return JS_FALSE;
|
8 | len=(int)dbl
|
Mir gefällt die zusätzliche Längenangabe nicht.
Frage: Gibt es die Möglichkeit auf die Längenangabe im JS-Code zu
verzichten und Länge des Arrays anders herzubekommen?