From 2614250d4f11ed02033a7da095a1694ece12ab78 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Wed, 13 Dec 2017 18:29:02 +0000 Subject: Methods are on CJX_Object not CJX_Node now This CL converts all of the JSNode() to JSObject() calls as all of the original CJX_Node methods have been moved to CJX_Object. This fixes potential bad casts from things like CJX_Content which do not inhert from CJX_Node. Bug: pdfium:793372 Change-Id: I6c7f63a78f3d47bb6bad74faed3fd8c535bf095e Reviewed-on: https://pdfium-review.googlesource.com/21090 Reviewed-by: Henrique Nakashima Commit-Queue: dsinclair --- fxjs/xfa/cjx_object.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'fxjs/xfa/cjx_object.h') diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h index cb1fef62da..b704037e4f 100644 --- a/fxjs/xfa/cjx_object.h +++ b/fxjs/xfa/cjx_object.h @@ -23,6 +23,7 @@ class CFXJSE_Value; class CJS_V8; class CXFA_CalcData; class CXFA_Document; +class CXFA_LayoutItem; class CXFA_Object; struct XFA_MAPMODULEDATA; @@ -58,6 +59,12 @@ class CJX_Object { } CXFA_WidgetData* GetWidgetData() const { return widget_data_.get(); } + void SetCalcRecursionCount(size_t count) { calc_recursion_count_ = count; } + size_t GetCalcRecursionCount() const { return calc_recursion_count_; } + + void SetLayoutItem(CXFA_LayoutItem* item) { layout_item_ = item; } + CXFA_LayoutItem* GetLayoutItem() const { return layout_item_.Get(); } + bool HasMethod(const WideString& func) const; CJS_Return RunMethod(const WideString& func, const std::vector>& params); @@ -353,11 +360,13 @@ class CJX_Object { void RemoveMapModuleKey(void* pKey); void MoveBufferMapData(CXFA_Object* pDstModule); - std::unique_ptr widget_data_; UnownedPtr object_; + UnownedPtr layout_item_; + std::unique_ptr widget_data_; std::unique_ptr map_module_data_; std::unique_ptr calc_data_; std::map method_specs_; + size_t calc_recursion_count_ = 0; }; #endif // FXJS_XFA_CJX_OBJECT_H_ -- cgit v1.2.3