]> git.kaiwu.me - njs.git/commitdiff
Added njs_primitive_value_to_number().
authorDmitry Volyntsev <xeioex@nginx.com>
Fri, 19 Oct 2018 17:55:30 +0000 (20:55 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Fri, 19 Oct 2018 17:55:30 +0000 (20:55 +0300)
njs/njs_number.c
njs/njs_number.h

index d70d4fc8a041b0826034d0155393c070286a96bd..ea28e2dc476ba16a5506eed7ac3de3b4a1ef5698 100644 (file)
@@ -63,6 +63,24 @@ njs_value_to_index(const njs_value_t *value)
 }
 
 
+double
+njs_primitive_value_to_number(const njs_value_t *value)
+{
+    if (nxt_fast_path(njs_is_numeric(value))) {
+        return value->data.u.number;
+    }
+
+    return njs_string_to_number(value, 1);
+}
+
+
+uint32_t
+njs_primitive_value_to_integer(const njs_value_t *value)
+{
+    return njs_number_to_integer(njs_primitive_value_to_number(value));
+}
+
+
 double
 njs_number_dec_parse(const u_char **start, const u_char *end)
 {
index a651b5265cdc9b54592b32ee733152e62c145d9f..3e9406733834f9f93e59e69410243f81f6128d06 100644 (file)
@@ -13,6 +13,8 @@
 
 
 uint32_t njs_value_to_index(const njs_value_t *value);
+double njs_primitive_value_to_number(const njs_value_t *value);
+uint32_t njs_primitive_value_to_integer(const njs_value_t *value);
 double njs_number_dec_parse(const u_char **start, const u_char *end);
 uint64_t njs_number_oct_parse(const u_char **start, const u_char *end);
 uint64_t njs_number_bin_parse(const u_char **start, const u_char *end);