]> git.kaiwu.me - njs.git/commitdiff
Removed deprecated njs_string_set().
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 8 Oct 2024 01:51:03 +0000 (18:51 -0700)
committerDmitry Volyntsev <xeioexception@gmail.com>
Tue, 8 Oct 2024 04:34:38 +0000 (21:34 -0700)
src/njs_string.c
src/njs_string.h
src/test/njs_benchmark.c

index ea22755b7301a1a3eb743c4555bd4a8754b5b38e..9405a8db32fc7b29087dd42a41bf811a0c4813e6 100644 (file)
@@ -74,58 +74,6 @@ static njs_int_t njs_string_match_multiple(njs_vm_t *vm, njs_value_t *args,
 #define njs_base64_decoded_length(len, pad)  (((len / 4) * 3) - pad)
 
 
-njs_int_t
-njs_string_set(njs_vm_t *vm, njs_value_t *value, const u_char *start,
-    uint32_t size)
-{
-    u_char        *dst;
-    const u_char  *src;
-    njs_string_t  *string;
-
-    value->type = NJS_STRING;
-    njs_string_truth(value, size);
-
-    if (size <= NJS_STRING_SHORT) {
-        value->short_string.size = size;
-        value->short_string.length = 0;
-
-        dst = value->short_string.start;
-        src = start;
-
-        while (size != 0) {
-            /* The maximum size is just 14 bytes. */
-            njs_pragma_loop_disable_vectorization;
-
-            *dst++ = *src++;
-            size--;
-        }
-
-    } else {
-        /*
-         * Setting UTF-8 length is not required here, it just allows
-         * to store the constant in whole byte instead of bit twiddling.
-         */
-        value->short_string.size = NJS_STRING_LONG;
-        value->short_string.length = 0;
-        value->long_string.external = 0xff;
-        value->long_string.size = size;
-
-        string = njs_mp_alloc(vm->mem_pool, sizeof(njs_string_t));
-        if (njs_slow_path(string == NULL)) {
-            njs_memory_error(vm);
-            return NJS_ERROR;
-        }
-
-        value->long_string.data = string;
-
-        string->start = (u_char *) start;
-        string->length = 0;
-    }
-
-    return NJS_OK;
-}
-
-
 njs_int_t
 njs_string_create(njs_vm_t *vm, njs_value_t *value, const u_char *src,
     size_t size)
index 9b478875066ec8805ddc3971b4f382e154b86530..686a5a74e57130b392943570c746d9d65f3ec193 100644 (file)
@@ -102,9 +102,6 @@ typedef enum {
 } njs_trim_t;
 
 
-/* njs_string_set() Is deprecated. */
-njs_int_t njs_string_set(njs_vm_t *vm, njs_value_t *value, const u_char *start,
-    uint32_t size);
 u_char *njs_string_alloc(njs_vm_t *vm, njs_value_t *value, uint64_t size,
     uint64_t length);
 njs_int_t njs_string_new(njs_vm_t *vm, njs_value_t *value, const u_char *start,
index f957dc5669f70055c1377d872c1f618d95883b74..71de6b57ee312e28140499c9154a2526d8222dcf 100644 (file)
@@ -265,26 +265,6 @@ static njs_benchmark_test_t  njs_test[] =
       njs_str("4"),
       100000 },
 
-    { "string set 'abcdefABCDEF'",
-      njs_str("benchmark.string('set', 'abcdef', 1000000)"),
-      njs_str("undefined"),
-      1 },
-
-    { "string set 'АБВГДЕ'",
-      njs_str("benchmark.string('set', 'АБВГДЕ', 1000000)"),
-      njs_str("undefined"),
-      1 },
-
-    { "string set 'x'.repeat(24)",
-      njs_str("benchmark.string('set', 'x'.repeat(32), 1000000)"),
-      njs_str("undefined"),
-      1 },
-
-    { "string set 'Д'.repeat(12)",
-      njs_str("benchmark.string('set', 'А'.repeat(16), 1000000)"),
-      njs_str("undefined"),
-      1 },
-
     { "string create 'abcdefABCDEF'",
       njs_str("benchmark.string('create', 'abcdef', 1000000)"),
       njs_str("undefined"),
@@ -723,12 +703,7 @@ njs_benchmark_string(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
         return NJS_ERROR;
     }
 
-    if (memcmp(mode.start, "set", 3) == 0) {
-        for (i = 0; i < n; i++) {
-            njs_string_set(vm, &value, s.start, s.length);
-        }
-
-    } else if (memcmp(mode.start, "create", 6) == 0) {
+    if (memcmp(mode.start, "create", 6) == 0) {
 
         for (i = 0; i < n; i++) {
             njs_string_create(vm, &value, s.start, s.length);