summaryrefslogtreecommitdiff
path: root/xfa/fxjse/util_inline.h
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2016-05-26 08:41:45 -0700
committerCommit bot <commit-bot@chromium.org>2016-05-26 08:41:45 -0700
commitdd6a46c7eddc31d29b2d2630378c52c25363ce59 (patch)
tree8de9ff2f47bf3130eb5eee7fb39eff4251b3d90b /xfa/fxjse/util_inline.h
parent25fa42f398d1f8007aa36531e0436dc769817ad3 (diff)
downloadpdfium-dd6a46c7eddc31d29b2d2630378c52c25363ce59.tar.xz
Revert of Remove parameters which are always null (patchset #1 id:1 of https://codereview.chromium.org/2009413002/ )
Reason for revert: Suspect that the lack of this parameter being passed accurately to GetObject is leading to https://bugs.chromium.org/p/chromium/issues/detail?id=613607, and that the right fix will be to pass it. Original issue's description: > Remove parameters which are always null > > These parameters are never set, remove them and their supporting code. > > Committed: https://pdfium.googlesource.com/pdfium/+/818e1900a3811e1bde1e594e4966db612f845966 TBR=tsepez@chromium.org,thestig@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2014863002
Diffstat (limited to 'xfa/fxjse/util_inline.h')
-rw-r--r--xfa/fxjse/util_inline.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/xfa/fxjse/util_inline.h b/xfa/fxjse/util_inline.h
index 336886b666..e61dc6aa80 100644
--- a/xfa/fxjse/util_inline.h
+++ b/xfa/fxjse/util_inline.h
@@ -20,7 +20,8 @@ static V8_INLINE void FXJSE_UpdateObjectBinding(v8::Local<v8::Object>& hObject,
hObject->SetAlignedPointerInInternalField(0, lpNewBinding);
}
static V8_INLINE void* FXJSE_RetrieveObjectBinding(
- const v8::Local<v8::Object>& hJSObject) {
+ const v8::Local<v8::Object>& hJSObject,
+ CFXJSE_Class* lpClass = NULL) {
ASSERT(!hJSObject.IsEmpty());
if (!hJSObject->IsObject()) {
return NULL;
@@ -36,6 +37,14 @@ static V8_INLINE void* FXJSE_RetrieveObjectBinding(
return NULL;
}
}
+ if (lpClass) {
+ v8::Local<v8::FunctionTemplate> hClass =
+ v8::Local<v8::FunctionTemplate>::New(
+ lpClass->GetContext()->GetRuntime(), lpClass->GetTemplate());
+ if (!hClass->HasInstance(hObject)) {
+ return NULL;
+ }
+ }
return hObject->GetAlignedPointerFromInternalField(0);
}