• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #include "fpdfsdk/javascript/JS_KeyValue.h"
8 
CJS_GlobalVariableArray()9 CJS_GlobalVariableArray::CJS_GlobalVariableArray() {}
10 
~CJS_GlobalVariableArray()11 CJS_GlobalVariableArray::~CJS_GlobalVariableArray() {}
12 
Copy(const CJS_GlobalVariableArray & array)13 void CJS_GlobalVariableArray::Copy(const CJS_GlobalVariableArray& array) {
14   m_Array.clear();
15   for (int i = 0, sz = array.Count(); i < sz; i++) {
16     CJS_KeyValue* pOldObjData = array.GetAt(i);
17     switch (pOldObjData->nType) {
18       case JS_GlobalDataType::NUMBER: {
19         CJS_KeyValue* pNewObjData = new CJS_KeyValue;
20         pNewObjData->sKey = pOldObjData->sKey;
21         pNewObjData->nType = pOldObjData->nType;
22         pNewObjData->dData = pOldObjData->dData;
23         Add(pNewObjData);
24       } break;
25       case JS_GlobalDataType::BOOLEAN: {
26         CJS_KeyValue* pNewObjData = new CJS_KeyValue;
27         pNewObjData->sKey = pOldObjData->sKey;
28         pNewObjData->nType = pOldObjData->nType;
29         pNewObjData->bData = pOldObjData->bData;
30         Add(pNewObjData);
31       } break;
32       case JS_GlobalDataType::STRING: {
33         CJS_KeyValue* pNewObjData = new CJS_KeyValue;
34         pNewObjData->sKey = pOldObjData->sKey;
35         pNewObjData->nType = pOldObjData->nType;
36         pNewObjData->sData = pOldObjData->sData;
37         Add(pNewObjData);
38       } break;
39       case JS_GlobalDataType::OBJECT: {
40         CJS_KeyValue* pNewObjData = new CJS_KeyValue;
41         pNewObjData->sKey = pOldObjData->sKey;
42         pNewObjData->nType = pOldObjData->nType;
43         pNewObjData->objData.Copy(pOldObjData->objData);
44         Add(pNewObjData);
45       } break;
46       case JS_GlobalDataType::NULLOBJ: {
47         CJS_KeyValue* pNewObjData = new CJS_KeyValue;
48         pNewObjData->sKey = pOldObjData->sKey;
49         pNewObjData->nType = pOldObjData->nType;
50         Add(pNewObjData);
51       } break;
52     }
53   }
54 }
55 
Add(CJS_KeyValue * p)56 void CJS_GlobalVariableArray::Add(CJS_KeyValue* p) {
57   m_Array.push_back(std::unique_ptr<CJS_KeyValue>(p));
58 }
59 
Count() const60 int CJS_GlobalVariableArray::Count() const {
61   return m_Array.size();
62 }
63 
GetAt(int index) const64 CJS_KeyValue* CJS_GlobalVariableArray::GetAt(int index) const {
65   return m_Array.at(index).get();
66 }
67 
CJS_KeyValue()68 CJS_KeyValue::CJS_KeyValue() {}
69 
~CJS_KeyValue()70 CJS_KeyValue::~CJS_KeyValue() {}
71