diff options
-rw-r--r-- | fxjs/cjs_globaldata.cpp | 4 | ||||
-rw-r--r-- | fxjs/cjs_globalvariablearray.cpp | 13 | ||||
-rw-r--r-- | fxjs/cjs_globalvariablearray.h | 3 |
3 files changed, 13 insertions, 7 deletions
diff --git a/fxjs/cjs_globaldata.cpp b/fxjs/cjs_globaldata.cpp index de240cf453..614ae15858 100644 --- a/fxjs/cjs_globaldata.cpp +++ b/fxjs/cjs_globaldata.cpp @@ -149,13 +149,13 @@ void CJS_GlobalData::SetGlobalVariableObject( if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName)) { pData->data.nType = JS_GlobalDataType::OBJECT; - pData->data.objData.Copy(array); + pData->data.objData = array; return; } auto pNewData = pdfium::MakeUnique<CJS_GlobalData_Element>(); pNewData->data.sKey = std::move(sPropName); pNewData->data.nType = JS_GlobalDataType::OBJECT; - pNewData->data.objData.Copy(array); + pNewData->data.objData = array; m_arrayGlobalData.push_back(std::move(pNewData)); } diff --git a/fxjs/cjs_globalvariablearray.cpp b/fxjs/cjs_globalvariablearray.cpp index c4ac00cc9a..e8155b6dc0 100644 --- a/fxjs/cjs_globalvariablearray.cpp +++ b/fxjs/cjs_globalvariablearray.cpp @@ -15,10 +15,14 @@ CJS_GlobalVariableArray::CJS_GlobalVariableArray() {} CJS_GlobalVariableArray::~CJS_GlobalVariableArray() {} -void CJS_GlobalVariableArray::Copy(const CJS_GlobalVariableArray& array) { +CJS_GlobalVariableArray& CJS_GlobalVariableArray::operator=( + const CJS_GlobalVariableArray& that) { + if (this == &that) + return *this; + m_Array.clear(); - for (int i = 0, sz = array.Count(); i < sz; i++) { - CJS_KeyValue* pOldObjData = array.GetAt(i); + for (int i = 0, sz = that.Count(); i < sz; i++) { + CJS_KeyValue* pOldObjData = that.GetAt(i); switch (pOldObjData->nType) { case JS_GlobalDataType::NUMBER: { auto pNewObjData = pdfium::MakeUnique<CJS_KeyValue>(); @@ -45,7 +49,7 @@ void CJS_GlobalVariableArray::Copy(const CJS_GlobalVariableArray& array) { auto pNewObjData = pdfium::MakeUnique<CJS_KeyValue>(); pNewObjData->sKey = pOldObjData->sKey; pNewObjData->nType = pOldObjData->nType; - pNewObjData->objData.Copy(pOldObjData->objData); + pNewObjData->objData = pOldObjData->objData; Add(std::move(pNewObjData)); } break; case JS_GlobalDataType::NULLOBJ: { @@ -56,6 +60,7 @@ void CJS_GlobalVariableArray::Copy(const CJS_GlobalVariableArray& array) { } break; } } + return *this; } void CJS_GlobalVariableArray::Add(std::unique_ptr<CJS_KeyValue> pKeyValue) { diff --git a/fxjs/cjs_globalvariablearray.h b/fxjs/cjs_globalvariablearray.h index a3f46586b9..ae98d3e044 100644 --- a/fxjs/cjs_globalvariablearray.h +++ b/fxjs/cjs_globalvariablearray.h @@ -17,10 +17,11 @@ class CJS_GlobalVariableArray { CJS_GlobalVariableArray(); ~CJS_GlobalVariableArray(); + CJS_GlobalVariableArray& operator=(const CJS_GlobalVariableArray& array); + void Add(std::unique_ptr<CJS_KeyValue> pKeyValue); int Count() const; CJS_KeyValue* GetAt(int index) const; - void Copy(const CJS_GlobalVariableArray& array); private: std::vector<std::unique_ptr<CJS_KeyValue>> m_Array; |