diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-07-23 18:03:44 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-23 18:03:44 +0000 |
commit | 721f5fa5061f2dec8282b7bde48c9d4721208b7a (patch) | |
tree | ef73827b16830ae0fe3f535783aa34b194f8257a /fxjs/fxjse.h | |
parent | 3ba611a551efb23518ac16f8bb23ab5ac4ca2c59 (diff) | |
download | pdfium-721f5fa5061f2dec8282b7bde48c9d4721208b7a.tar.xz |
Replace CFXJSE_HostObject::type_ with polymorphic conversion methods
More foolproof technique, and saves one word in every instance at a
cost of two pointers in every subclass vtable.
Change-Id: Ied4f91d4d203b5e6d83abe751159eb7e55489bb5
Reviewed-on: https://pdfium-review.googlesource.com/38530
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'fxjs/fxjse.h')
-rw-r--r-- | fxjs/fxjse.h | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/fxjs/fxjse.h b/fxjs/fxjse.h index addd148117..3f2eb1d836 100644 --- a/fxjs/fxjse.h +++ b/fxjs/fxjse.h @@ -12,23 +12,22 @@ #include "v8/include/v8.h" class CFXJSE_Arguments; +class CFXJSE_FormCalcContext; class CFXJSE_Value; class CJS_Return; +class CXFA_Object; // C++ object which is retrieved from v8 object's slot. class CFXJSE_HostObject { public: - virtual ~CFXJSE_HostObject() {} + virtual ~CFXJSE_HostObject(); - // Small layering violation here, but we need to distinguish between the - // two kinds of subclasses. - enum Type { kXFA, kFM2JS }; - Type type() const { return type_; } + // Two subclasses. + virtual CFXJSE_FormCalcContext* AsFormCalcContext(); + virtual CXFA_Object* AsCXFAObject(); protected: - explicit CFXJSE_HostObject(Type type) { type_ = type; } - - Type type_; + CFXJSE_HostObject(); }; typedef CJS_Return (*FXJSE_MethodCallback)( |