]> git.kaiwu.me - njs.git/commitdiff
Removed remnants of GC code.
authorVadim Zhestikov <v.zhestikov@f5.com>
Thu, 30 Nov 2023 04:46:36 +0000 (20:46 -0800)
committerVadim Zhestikov <v.zhestikov@f5.com>
Thu, 30 Nov 2023 04:46:36 +0000 (20:46 -0800)
The code never worked and comments are in a broken state.

src/njs_array.c
src/njs_function.c
src/njs_iterator.c
src/njs_object.c
src/njs_object.h
src/njs_scope.c
src/njs_string.c
src/njs_string.h
src/njs_value.c
src/njs_value.h
src/njs_vmcode.c

index d7701bb73c65b2de70ad51c36b7dc4e6e70e7c63..60c7b90f8021718bd7cef3532b62b8e8cf02a767 100644 (file)
@@ -163,8 +163,6 @@ njs_array_convert_to_slow_array(njs_vm_t *vm, njs_array_t *array)
         }
     }
 
-    /* GC: release value. */
-
     njs_mp_free(vm->mem_pool, array->data);
     array->start = NULL;
 
@@ -338,7 +336,6 @@ njs_array_add(njs_vm_t *vm, njs_array_t *array, njs_value_t *value)
     ret = njs_array_expand(vm, array, 0, 1);
 
     if (njs_fast_path(ret == NJS_OK)) {
-        /* GC: retain value. */
         array->start[array->length++] = *value;
     }
 
@@ -466,7 +463,6 @@ njs_array_constructor(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
 
             } else {
                 while (size != 0) {
-                    njs_retain(args);
                     *value++ = *args++;
                     size--;
                 }
@@ -967,7 +963,6 @@ njs_array_prototype_push(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
             }
 
             for (i = 1; i < nargs; i++) {
-                /* GC: njs_retain(&args[i]); */
                 array->start[array->length++] = args[i];
             }
         }
@@ -1094,7 +1089,6 @@ njs_array_prototype_unshift(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
 
             do {
                 n--;
-                /* GC: njs_retain(&args[n]); */
                 array->start--;
                 array->start[0] = args[n];
             } while (n > 1);
@@ -2133,8 +2127,6 @@ njs_array_iterator_call(njs_vm_t *vm, njs_iterator_args_t *args,
 {
     njs_value_t  arguments[3];
 
-    /* GC: array elt, array */
-
     arguments[0] = *entry;
     njs_set_number(&arguments[1], n);
     njs_value_assign(&arguments[2], &args->value);
@@ -2303,8 +2295,6 @@ njs_array_handler_reduce(njs_vm_t *vm, njs_iterator_args_t *args,
             return NJS_OK;
         }
 
-        /* GC: array elt, array */
-
         njs_set_undefined(&arguments[0]);
         njs_value_assign(&arguments[1], &args->argument);
         arguments[2] = *entry;
index da269c4c47ed057e59046b26698fad901efd3f99..1413ed845cf55c052cb2d397bf7c44c0530eb9ee 100644 (file)
@@ -310,7 +310,6 @@ njs_function_rest_parameters_init(njs_vm_t *vm, njs_native_frame_t *frame)
         return NJS_ERROR;
     }
 
-    /* GC: retain. */
     njs_set_array(rest_arguments, array);
 
     vm->top_frame->local[n] = rest_arguments;
@@ -1419,8 +1418,6 @@ njs_function_prototype_bind(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
 
     function->bound = values;
 
-    /* GC: ? retain args. */
-
     memcpy(values, args, size);
 
     njs_set_function(retval, function);
index 6159ed024f1b0788a0fbc25530e70ecf23c3505b..9476d369f7acfae61fa3ab036901e2f38b6554eb 100644 (file)
@@ -50,7 +50,6 @@ njs_array_iterator_create(njs_vm_t *vm, const njs_value_t *target,
         return NJS_ERROR;
     }
 
-    /* GC retain it->target */
     it->target = *target;
     it->next = 0;
     it->kind = kind;
@@ -163,7 +162,6 @@ njs_array_iterator_next(njs_vm_t *vm, njs_value_t *iterator,
 
 release:
 
-    /* GC release it->target */
     njs_mp_free(vm->mem_pool, it);
     njs_set_invalid(njs_object_value(iterator));
 
index 51f28739e7a777991605442af3c99b9764d895cf..0280901a850b2a92cab3ab65e8db5bc19ea665e4 100644 (file)
@@ -279,7 +279,6 @@ njs_object_create(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
         }
 
         if (!njs_is_null(value)) {
-            /* GC */
             object->__proto__ = njs_object(value);
 
         } else {
@@ -2022,8 +2021,6 @@ njs_property_prototype_create(njs_vm_t *vm, njs_lvlhsh_t *hash,
         return NULL;
     }
 
-    /* GC */
-
     njs_set_type_object(njs_prop_value(prop), prototype, prototype->type);
 
     lhq.value = prop;
@@ -2273,8 +2270,6 @@ njs_property_constructor_set(njs_vm_t *vm, njs_lvlhsh_t *hash,
         return NULL;
     }
 
-    /* GC */
-
     njs_value_assign(njs_prop_value(prop), constructor);
     prop->enumerable = 0;
 
index f71ac82c0d98010f28a014acaf94cf8065734c02..d2a6a79711ac5349c94537644b516619d8a34197 100644 (file)
@@ -196,7 +196,6 @@ njs_primitive_value_to_key(njs_vm_t *vm, njs_value_t *dst,
 
     case NJS_SYMBOL:
     case NJS_STRING:
-        /* GC: njs_retain(src); */
         value = src;
         break;
 
index c475750aa4c96804acf4bcbe6340c0aac213c73c..36ba0ec5cf99b5544aa41f337f25ae3b7a8dd807 100644 (file)
@@ -235,7 +235,6 @@ njs_scope_value_index(njs_vm_t *vm, const njs_value_t *src, njs_uint_t runtime,
 
             string->start = (u_char *) string + sizeof(njs_string_t);
             string->length = src->long_string.data->length;
-            string->retain = 0xffff;
 
             memcpy(string->start, start, size);
         }
index f783f4556d04747fea5031b056274c0774969fac..2ee1e719fce319069b02a3d6027be19c90fccd43 100644 (file)
@@ -120,7 +120,6 @@ njs_string_set(njs_vm_t *vm, njs_value_t *value, const u_char *start,
 
         string->start = (u_char *) start;
         string->length = 0;
-        string->retain = 1;
     }
 
     return NJS_OK;
@@ -233,7 +232,6 @@ njs_string_alloc(njs_vm_t *vm, njs_value_t *value, uint64_t size,
 
         string->start = (u_char *) string + sizeof(njs_string_t);
         string->length = length;
-        string->retain = 1;
 
         if (map_offset != 0) {
             map = (uint32_t *) (string->start + map_offset);
@@ -520,8 +518,6 @@ void
 njs_string_copy(njs_value_t *dst, njs_value_t *src)
 {
     *dst = *src;
-
-    /* GC: long string retain */
 }
 
 
@@ -701,8 +697,6 @@ njs_string_instance_length(njs_vm_t *vm, njs_object_prop_t *prop,
 
     njs_set_number(retval, length);
 
-    njs_release(vm, value);
-
     return NJS_OK;
 }
 
index 549668480436edd264d595d906e0dc035a6104a2..1778f45786289ae58558ceb8ab26b823df3675f5 100644 (file)
@@ -73,7 +73,6 @@
 struct njs_string_s {
     u_char    *start;
     uint32_t  length;   /* Length in UTF-8 characters. */
-    uint32_t  retain;   /* Link counter. */
 };
 
 
index 6d3af8e090a8a781631e6096b6f926a9e18d13a6..fff7196fe14c468e4e9e05375d945fb10dbb1434 100644 (file)
@@ -58,61 +58,6 @@ const njs_value_t  njs_string_anonymous =   njs_string("anonymous");
 const njs_value_t  njs_string_memory_error = njs_string("MemoryError");
 
 
-void
-njs_value_retain(njs_value_t *value)
-{
-    njs_string_t  *string;
-
-    if (njs_is_string(value)) {
-
-        if (value->long_string.external != 0xff) {
-            string = value->long_string.data;
-
-            njs_thread_log_debug("retain:%uxD \"%*s\"", string->retain,
-                                 value->long_string.size, string->start);
-
-            if (string->retain != 0xffff) {
-                string->retain++;
-            }
-        }
-    }
-}
-
-
-void
-njs_value_release(njs_vm_t *vm, njs_value_t *value)
-{
-    njs_string_t  *string;
-
-    if (njs_is_string(value)) {
-
-        if (value->long_string.external != 0xff) {
-            string = value->long_string.data;
-
-            njs_thread_log_debug("release:%uxD \"%*s\"", string->retain,
-                                 value->long_string.size, string->start);
-
-            if (string->retain != 0xffff) {
-                string->retain--;
-
-#if 0
-                if (string->retain == 0) {
-                    if ((u_char *) string + sizeof(njs_string_t)
-                        != string->start)
-                    {
-                        njs_memcache_pool_free(vm->mem_pool,
-                                               string->start);
-                    }
-
-                    njs_memcache_pool_free(vm->mem_pool, string);
-                }
-#endif
-            }
-        }
-    }
-}
-
-
 /*
  * A hint value is 0 for numbers and 1 for strings.  The value chooses
  * method calls order specified by ECMAScript 5.1: "valueOf", "toString"
@@ -140,7 +85,6 @@ njs_value_to_primitive(njs_vm_t *vm, njs_value_t *dst, njs_value_t *value,
 
 
     if (njs_is_primitive(value)) {
-        /* GC */
         *dst = *value;
         return NJS_OK;
     }
@@ -1622,7 +1566,6 @@ njs_primitive_value_to_string(njs_vm_t *vm, njs_value_t *dst,
         return NJS_ERROR;
 
     case NJS_STRING:
-        /* GC: njs_retain(src); */
         value = src;
         break;
 
index 0ce2ee03d38cfb7f613e35f022d8cf0ef774afb7..70c3dd4261c0dd19962bef69ac71c053296ce5cb 100644 (file)
@@ -1029,35 +1029,6 @@ njs_set_object_value(njs_value_t *value, njs_object_value_t *object_value)
 #define njs_set_invalid(value)                                                \
     (value)->type = NJS_INVALID
 
-
-#if 0 /* GC: todo */
-
-#define njs_retain(value)                                                     \
-    do {                                                                      \
-        if ((value)->data.truth == NJS_STRING_LONG) {                         \
-            njs_value_retain(value);                                          \
-        }                                                                     \
-    } while (0)
-
-
-#define njs_release(vm, value)                                                \
-    do {                                                                      \
-        if ((value)->data.truth == NJS_STRING_LONG) {                         \
-            njs_value_release((vm), (value));                                 \
-        }                                                                     \
-    } while (0)
-
-#else
-
-#define njs_retain(value)
-#define njs_release(vm, value)
-
-#endif
-
-
-
-void njs_value_retain(njs_value_t *value);
-void njs_value_release(njs_vm_t *vm, njs_value_t *value);
 njs_int_t njs_value_to_primitive(njs_vm_t *vm, njs_value_t *dst,
     njs_value_t *value, njs_uint_t hint);
 njs_array_t *njs_value_enumerate(njs_vm_t *vm, njs_value_t *value,
index b67c2fd98325ed2e2d09809e1a34d4cefac5e7e2..cdf6d1568a11897f547cd35a019e8f70f789ce68 100644 (file)
@@ -2030,7 +2030,6 @@ njs_vmcode_property_init(njs_vm_t *vm, njs_value_t *value, njs_value_t *key,
             array->length = index + 1;
         }
 
-        /* GC: retain. */
         array->start[index] = *init;
 
         break;
@@ -2569,10 +2568,7 @@ njs_vmcode_return(njs_vm_t *vm, njs_value_t *dst, njs_value_t *retval)
     frame = (njs_frame_t *) vm->top_frame;
 
     if (frame->native.ctor) {
-        if (njs_is_object(retval)) {
-            njs_release(vm, frame->native.local[0]);
-
-        } else {
+        if (!njs_is_object(retval)) {
             retval = frame->native.local[0];
         }
     }