]> git.kaiwu.me - njs.git/commitdiff
Added njs_date_alloc().
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 2 Nov 2021 12:38:42 +0000 (12:38 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Tue, 2 Nov 2021 12:38:42 +0000 (12:38 +0000)
src/njs_date.c
src/njs_date.h

index 3194a5ac4b0b31f9d0a0f01b0c0b866f6ba5c707..88e793bc9bcee8c10ab125c4ea610541dc2d081b 100644 (file)
@@ -346,6 +346,33 @@ njs_date_args(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
 }
 
 
+njs_date_t *
+njs_date_alloc(njs_vm_t *vm, double time)
+{
+    njs_date_t  *date;
+
+    date = njs_mp_alloc(vm->mem_pool, sizeof(njs_date_t));
+    if (njs_slow_path(date == NULL)) {
+        njs_memory_error(vm);
+        return NULL;
+    }
+
+    njs_lvlhsh_init(&date->object.hash);
+    njs_lvlhsh_init(&date->object.shared_hash);
+    date->object.type = NJS_DATE;
+    date->object.shared = 0;
+    date->object.extensible = 1;
+    date->object.error_data = 0;
+    date->object.fast_array = 0;
+    date->object.__proto__ = &vm->prototypes[NJS_OBJ_TYPE_DATE].object;
+    date->object.slots = NULL;
+
+    date->time = time;
+
+    return date;
+}
+
+
 static njs_int_t
 njs_date_constructor(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
     njs_index_t unused)
@@ -393,24 +420,11 @@ njs_date_constructor(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
         time = njs_make_date(tm, 1);
     }
 
-    date = njs_mp_alloc(vm->mem_pool, sizeof(njs_date_t));
+    date = njs_date_alloc(vm, time);
     if (njs_slow_path(date == NULL)) {
-        njs_memory_error(vm);
         return NJS_ERROR;
     }
 
-    njs_lvlhsh_init(&date->object.hash);
-    njs_lvlhsh_init(&date->object.shared_hash);
-    date->object.type = NJS_DATE;
-    date->object.shared = 0;
-    date->object.extensible = 1;
-    date->object.error_data = 0;
-    date->object.fast_array = 0;
-    date->object.__proto__ = &vm->prototypes[NJS_OBJ_TYPE_DATE].object;
-    date->object.slots = NULL;
-
-    date->time = time;
-
     njs_set_date(&vm->retval, date);
 
     return NJS_OK;
index d4fbb0621b6919700e81acc6f4529fc10ba41e1e..755626cadd647f229a5c10ee6a30b3b23e9256c0 100644 (file)
@@ -8,6 +8,7 @@
 #define _NJS_DATE_H_INCLUDED_
 
 
+njs_date_t *njs_date_alloc(njs_vm_t *vm, double time);
 njs_int_t njs_date_to_string(njs_vm_t *vm, njs_value_t *retval,
     const njs_value_t *date);