diff --git a/native_client/javascript/deepspeech.i b/native_client/javascript/deepspeech.i index 0575b156..02d274c0 100644 --- a/native_client/javascript/deepspeech.i +++ b/native_client/javascript/deepspeech.i @@ -62,28 +62,29 @@ using namespace node; %nodefaultctor ModelState; %nodefaultdtor ModelState; + +%typemap(out) MetadataItem* %{ + $result = SWIGV8_ARRAY_NEW(); + for (int i = 0; i < arg1->num_items; ++i) { + SWIGV8_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr(&result[i]), SWIGTYPE_p_MetadataItem, SWIG_POINTER_OWN)); + } +%} + %nodefaultdtor Metadata; %nodefaultctor Metadata; %nodefaultctor MetadataItem; %nodefaultdtor MetadataItem; -%extend Metadata { - v8::Local items; - v8::Local items_get() { - v8::Local jsresult = SWIGV8_ARRAY_NEW(); - for (int i = 0; i < self->num_items; ++i) { - jsresult = SWIGV8_AppendOutput(jsresult, SWIG_NewPointerObj(SWIG_as_voidptr(&self->items[i]), SWIGTYPE_p_MetadataItem, SWIG_POINTER_OWN)); - } - fail: - return jsresult; - } - v8::Local items_set(const v8::Local arg) { - fail: - v8::Local result = SWIGV8_ARRAY_NEW(); - return result; +%extend struct Metadata { + ~Metadata() { + DS_FreeMetadata($self); } } +%extend struct MetadataItem { + ~MetadataItem() { } +} + %rename ("%(strip:[DS_])s") ""; %include "../deepspeech.h"