mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-23 11:44:53 +00:00
Add v7 arg to _mk_ and _get_ functions
`v7_mk_undefined()` and `v7_mk_null()` are left unchanged, but marked deprecated, and `V7_UNDEFINED` and `V7_NULL` are public now. Xtensa code size with instrumentation: 590400 -> 590432, i.e. 32 bytes. Xtensa code size without instrumentation: 530848 -> 531760, i.e. 912 bytes. As objdump reveals, inside v7.c, `v7_mk_number` and others are inlined, so the extra v7 argument is eliminated; outside of v7.c it's obviously not inlined. ---- Also, v7_get_int() is added, which currently just casts stored double value to int PUBLISHED_FROM=e984b7308faf2380b3de388f238e0fae0aea545d
This commit is contained in:
1 parent
b5b672ec89
commit
177e829f4b
3 files changed
+10
-9
No files matched your search
@@ -1,11 +1,10 @@
|
||||
---
|
||||
title: "mg_mk_str()"
|
||||
decl_name: "mg_mk_str"
|
||||
title: "MG_MK_STR()"
|
||||
decl_name: "MG_MK_STR"
|
||||
symbol_kind: "func"
|
||||
signature: |
|
||||
struct mg_str mg_mk_str(const char *s);
|
||||
#define MG_MK_STR(str_literal);
|
||||
---
|
||||
|
||||
A helper function for creating mg_str struct from plain C string.
|
||||
`NULL` is allowed and becomes `{NULL, 0}`.
|
||||
Macro for initializing mg_str.
|
||||
|
||||
+4
-4
@@ -2269,7 +2269,7 @@ void mg_mgr_init(struct mg_mgr *m, void *user_data) {
|
||||
static enum v7_err mg_send_js(struct v7 *v7, v7_val_t *res) {
|
||||
v7_val_t arg0 = v7_arg(v7, 0);
|
||||
v7_val_t arg1 = v7_arg(v7, 1);
|
||||
struct mg_connection *c = (struct mg_connection *) v7_get_ptr(arg0);
|
||||
struct mg_connection *c = (struct mg_connection *) v7_get_ptr(v7, arg0);
|
||||
size_t len = 0;
|
||||
|
||||
if (v7_is_string(arg1)) {
|
||||
@@ -2277,7 +2277,7 @@ static enum v7_err mg_send_js(struct v7 *v7, v7_val_t *res) {
|
||||
mg_send(c, data, len);
|
||||
}
|
||||
|
||||
*res = v7_mk_number(len);
|
||||
*res = v7_mk_number(v7, len);
|
||||
|
||||
return V7_OK;
|
||||
}
|
||||
@@ -5183,9 +5183,9 @@ void mg_http_handler(struct mg_connection *nc, int ev, void *ev_data) {
|
||||
}
|
||||
|
||||
/* Invoke callback. TODO(lsm): report errors */
|
||||
v7_array_push(v7, args, v7_mk_foreign(nc));
|
||||
v7_array_push(v7, args, v7_mk_foreign(v7, nc));
|
||||
v7_array_push(v7, args, req);
|
||||
if (v7_apply(v7, v2, v7_mk_undefined(), args, &res) == V7_OK &&
|
||||
if (v7_apply(v7, v2, V7_UNDEFINED, args, &res) == V7_OK &&
|
||||
v7_is_truthy(v7, res)) {
|
||||
js_callback_handled_request++;
|
||||
}
|
||||
|
||||
@@ -104,10 +104,12 @@
|
||||
#define NORETURN __attribute__((noreturn))
|
||||
#define NOINLINE __attribute__((noinline))
|
||||
#define WARN_UNUSED_RESULT __attribute__((warn_unused_result))
|
||||
#define NOINSTR __attribute__((no_instrument_function))
|
||||
#else
|
||||
#define NORETURN
|
||||
#define NOINLINE
|
||||
#define WARN_UNUSED_RESULT
|
||||
#define NOINSTR
|
||||
#endif /* __GNUC__ */
|
||||
|
||||
#ifndef ARRAY_SIZE
|
||||
|
||||
Reference in new issue
Block a user