Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Side by Side Diff: xfa/fxjse/class.h

Issue 2036513002: Stop casting struct CFXJSE_ArgumentsImpl to unrelated class CFXJSE_Arguments (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Explicit ctor Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fxjse/cfxjse_arguments.h ('k') | xfa/fxjse/class.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #ifndef XFA_FXJSE_CLASS_H_ 7 #ifndef XFA_FXJSE_CLASS_H_
8 #define XFA_FXJSE_CLASS_H_ 8 #define XFA_FXJSE_CLASS_H_
9 9
10 #include "v8/include/v8.h" 10 #include "v8/include/v8.h"
11 #include "xfa/fxjse/cfxjse_arguments.h" 11 #include "xfa/fxjse/cfxjse_arguments.h"
12 #include "xfa/fxjse/include/fxjse.h" 12 #include "xfa/fxjse/include/fxjse.h"
13 13
14 class CFXJSE_Context; 14 class CFXJSE_Context;
15 class CFXJSE_Value; 15 class CFXJSE_Value;
16 16
17 class CFXJSE_Class { 17 class CFXJSE_Class {
18 protected:
19 CFXJSE_Class(CFXJSE_Context* lpContext)
20 : m_lpClassDefinition(nullptr), m_pContext(lpContext) {}
21
22 public:
23 inline CFXJSE_Context* GetContext() { return m_pContext; }
24 inline v8::Global<v8::FunctionTemplate>& GetTemplate() { return m_hTemplate; }
25
26 public: 18 public:
27 static CFXJSE_Class* Create(CFXJSE_Context* pContext, 19 static CFXJSE_Class* Create(CFXJSE_Context* pContext,
28 const FXJSE_CLASS_DESCRIPTOR* lpClassDefintion, 20 const FXJSE_CLASS_DESCRIPTOR* lpClassDefintion,
29 FX_BOOL bIsJSGlobal = FALSE); 21 FX_BOOL bIsJSGlobal = FALSE);
30 static CFXJSE_Class* GetClassFromContext(CFXJSE_Context* pContext, 22 static CFXJSE_Class* GetClassFromContext(CFXJSE_Context* pContext,
31 const CFX_ByteStringC& szName); 23 const CFX_ByteStringC& szName);
32 static void SetUpNamedPropHandler( 24 static void SetUpNamedPropHandler(
33 v8::Isolate* pIsolate, 25 v8::Isolate* pIsolate,
34 v8::Local<v8::ObjectTemplate>& hObjectTemplate, 26 v8::Local<v8::ObjectTemplate>& hObjectTemplate,
35 const FXJSE_CLASS_DESCRIPTOR* lpClassDefinition); 27 const FXJSE_CLASS_DESCRIPTOR* lpClassDefinition);
36 28
29 CFXJSE_Context* GetContext() { return m_pContext; }
30 v8::Global<v8::FunctionTemplate>& GetTemplate() { return m_hTemplate; }
31
37 protected: 32 protected:
33 explicit CFXJSE_Class(CFXJSE_Context* lpContext)
34 : m_lpClassDefinition(nullptr), m_pContext(lpContext) {}
35
38 CFX_ByteString m_szClassName; 36 CFX_ByteString m_szClassName;
39 const FXJSE_CLASS_DESCRIPTOR* m_lpClassDefinition; 37 const FXJSE_CLASS_DESCRIPTOR* m_lpClassDefinition;
40 CFXJSE_Context* m_pContext; 38 CFXJSE_Context* m_pContext;
41 v8::Global<v8::FunctionTemplate> m_hTemplate; 39 v8::Global<v8::FunctionTemplate> m_hTemplate;
42 friend class CFXJSE_Context; 40 friend class CFXJSE_Context;
43 friend class CFXJSE_Value; 41 friend class CFXJSE_Value;
44 }; 42 };
45 struct CFXJSE_ArgumentsImpl {
46 const v8::FunctionCallbackInfo<v8::Value>* m_pInfo;
47 CFXJSE_Value* m_pRetValue;
48 };
49 43
50 #endif // XFA_FXJSE_CLASS_H_ 44 #endif // XFA_FXJSE_CLASS_H_
OLDNEW
« no previous file with comments | « xfa/fxjse/cfxjse_arguments.h ('k') | xfa/fxjse/class.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698