From f0a5b2803c09f3605dcd606e764ef604f0d2a8ea Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 6 Oct 2015 11:10:52 -0700 Subject: Store object definition ID in each js_class. Avoids doing a lookup via FXJS_V8 for something already known in CJS layer. Also: Consolidate repeated code in JS macros. Remove knowledge that Document is global from FXJS layer R=thestig@chromium.org Review URL: https://codereview.chromium.org/1382263002 . --- fpdfsdk/src/javascript/JS_EventHandler.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'fpdfsdk/src/javascript/JS_EventHandler.cpp') diff --git a/fpdfsdk/src/javascript/JS_EventHandler.cpp b/fpdfsdk/src/javascript/JS_EventHandler.cpp index 42d61f4c1e..dd5c4427ce 100644 --- a/fpdfsdk/src/javascript/JS_EventHandler.cpp +++ b/fpdfsdk/src/javascript/JS_EventHandler.cpp @@ -613,13 +613,12 @@ FX_BOOL CJS_EventHandler::Shift() { Field* CJS_EventHandler::Source() { CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime(); v8::Local pDocObj = FXJS_NewFxDynamicObj( - pRuntime->GetIsolate(), m_pJSContext, - FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Document")); - ASSERT(pDocObj.IsEmpty() == FALSE); - v8::Local pFieldObj = - FXJS_NewFxDynamicObj(pRuntime->GetIsolate(), m_pJSContext, - FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Field")); - ASSERT(pFieldObj.IsEmpty() == FALSE); + pRuntime->GetIsolate(), m_pJSContext, CJS_Document::g_nObjDefnID); + ASSERT(!pDocObj.IsEmpty()); + + v8::Local pFieldObj = FXJS_NewFxDynamicObj( + pRuntime->GetIsolate(), m_pJSContext, CJS_Field::g_nObjDefnID); + ASSERT(!pFieldObj.IsEmpty()); CJS_Document* pJSDocument = (CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pDocObj); @@ -637,13 +636,12 @@ Field* CJS_EventHandler::Source() { Field* CJS_EventHandler::Target_Field() { CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime(); v8::Local pDocObj = FXJS_NewFxDynamicObj( - pRuntime->GetIsolate(), m_pJSContext, - FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Document")); - ASSERT(pDocObj.IsEmpty() == FALSE); - v8::Local pFieldObj = - FXJS_NewFxDynamicObj(pRuntime->GetIsolate(), m_pJSContext, - FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Field")); - ASSERT(pFieldObj.IsEmpty() == FALSE); + pRuntime->GetIsolate(), m_pJSContext, CJS_Document::g_nObjDefnID); + ASSERT(!pDocObj.IsEmpty()); + + v8::Local pFieldObj = FXJS_NewFxDynamicObj( + pRuntime->GetIsolate(), m_pJSContext, CJS_Field::g_nObjDefnID); + ASSERT(!pFieldObj.IsEmpty()); CJS_Document* pJSDocument = (CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pDocObj); -- cgit v1.2.3