]> git.kaiwu.me - njs.git/commit
Refactored working with external prototypes.
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 24 Dec 2020 18:35:18 +0000 (18:35 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Thu, 24 Dec 2020 18:35:18 +0000 (18:35 +0000)
commit49387a73bde3f8d5ac7f41078eed99c61d90c312
treea36e0b18eadf4e3231872a049d1269f7faff72cb
parentee5c612b8ae33e3b09088164680a305bd39d1646
Refactored working with external prototypes.

Previously, njs_vm_external_prototype() returned the pointer to a
created prototype structure. Which were expected to be passed to
njs_vm_external_create() as is.  The returned pointer is needed to be
stored somewhere by user code which complicates user code in cases when
many prototypes are created.

Instead, an index in the VM internal table is returned.
njs_vm_external_create() is changed accordingly.  This simplifies
user code because the index is known at static time for most cases.
12 files changed:
nginx/ngx_http_js_module.c
nginx/ngx_js.c
nginx/ngx_js.h
nginx/ngx_stream_js_module.c
src/njs.h
src/njs_extern.c
src/njs_shell.c
src/njs_vm.h
src/test/njs_benchmark.c
src/test/njs_externals_test.c
src/test/njs_externals_test.h
src/test/njs_unit_test.c