const u_char *p, *end;
njs_string_prop_t string, search;
+ index = -1;
+
if (nargs > 1) {
length = njs_string_prop(&string, &args[0]);
search_length = njs_string_prop(&search, &args[1]);
if (length < search_length) {
- goto small;
+ goto done;
}
index = NJS_STRING_MAX_LENGTH;
goto done;
}
- p--;
index--;
+ p--;
- } while (index >= 0);
+ } while (p >= string.start);
} else {
/* UTF-8 string. */
p = nxt_utf8_prev(p);
}
- do {
+ for ( ;; ) {
if (memcmp(p, search.start, search.size) == 0) {
goto done;
}
- p = nxt_utf8_prev(p);
index--;
- } while (index >= 0);
+ if (p <= string.start) {
+ break;
+ }
+
+ p = nxt_utf8_prev(p);
+ }
}
}
-small:
-
- index = -1;
-
done:
njs_number_set(&vm->retval, index);