From: Dmitry Volyntsev Date: Fri, 19 Oct 2018 17:55:30 +0000 (+0300) Subject: Added njs_primitive_value_to_number(). X-Git-Tag: 0.2.5~7 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=b76d27fb9e7443798a703b318356088e9619904f;p=njs.git Added njs_primitive_value_to_number(). --- diff --git a/njs/njs_number.c b/njs/njs_number.c index d70d4fc8..ea28e2dc 100644 --- a/njs/njs_number.c +++ b/njs/njs_number.c @@ -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) { diff --git a/njs/njs_number.h b/njs/njs_number.h index a651b526..3e940673 100644 --- a/njs/njs_number.h +++ b/njs/njs_number.h @@ -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);