diff --git a/src/PDFReaderDriver.cpp b/src/PDFReaderDriver.cpp index 5dbcea31..89c85e76 100644 --- a/src/PDFReaderDriver.cpp +++ b/src/PDFReaderDriver.cpp @@ -61,6 +61,7 @@ void PDFReaderDriver::Init() t->SetClassName(NEW_STRING("PDFReader")); t->InstanceTemplate()->SetInternalFieldCount(1); + SET_PROTOTYPE_METHOD(t, "end", End); SET_PROTOTYPE_METHOD(t, "getPDFLevel", GetPDFLevel); SET_PROTOTYPE_METHOD(t, "getPagesCount", GetPagesCount); SET_PROTOTYPE_METHOD(t, "getTrailer", GetTrailer); @@ -129,6 +130,16 @@ METHOD_RETURN_TYPE PDFReaderDriver::New(const ARGS_TYPE& args) SET_FUNCTION_RETURN_VALUE(args.This()) } +METHOD_RETURN_TYPE PDFReaderDriver::End(const ARGS_TYPE& args) +{ + CREATE_ISOLATE_CONTEXT; + CREATE_ESCAPABLE_SCOPE; + + PDFReaderDriver* reader = ObjectWrap::Unwrap(args.This()); + if (reader->mPDFReader->GetParserStream()) + delete reader->mPDFReader->GetParserStream(); + SET_FUNCTION_RETURN_VALUE(args.This()); +} METHOD_RETURN_TYPE PDFReaderDriver::GetPDFLevel(const ARGS_TYPE& args) { diff --git a/src/PDFReaderDriver.h b/src/PDFReaderDriver.h index 3bac216d..557486ce 100644 --- a/src/PDFReaderDriver.h +++ b/src/PDFReaderDriver.h @@ -49,6 +49,7 @@ class PDFReaderDriver : public node::ObjectWrap static v8::Persistent constructor_template; static METHOD_RETURN_TYPE New(const ARGS_TYPE& args); static METHOD_RETURN_TYPE GetPDFLevel(const ARGS_TYPE& args); + static METHOD_RETURN_TYPE End(const ARGS_TYPE& args); static METHOD_RETURN_TYPE GetPagesCount(const ARGS_TYPE& args); static METHOD_RETURN_TYPE QueryDictionaryObject(const ARGS_TYPE& args); static METHOD_RETURN_TYPE QueryArrayObject(const ARGS_TYPE& args);