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

Side by Side Diff: fpdfsdk/src/javascript/global.cpp

Issue 1349423006: More tidy of CJS_Object, kill implicit cast operator (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years, 3 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 | « fpdfsdk/src/javascript/JS_Value.cpp ('k') | no next file » | 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 #include "../../../core/include/fxcrt/fx_ext.h" 7 #include "../../../core/include/fxcrt/fx_ext.h"
8 #include "../../include/javascript/IJavaScript.h" 8 #include "../../include/javascript/IJavaScript.h"
9 #include "../../include/javascript/JS_Context.h" 9 #include "../../include/javascript/JS_Context.h"
10 #include "../../include/javascript/JS_Define.h" 10 #include "../../include/javascript/JS_Define.h"
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 236
237 for (int i = 0, sz = m_pGlobalData->GetSize(); i < sz; i++) { 237 for (int i = 0, sz = m_pGlobalData->GetSize(); i < sz; i++) {
238 CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i); 238 CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i);
239 ASSERT(pData != NULL); 239 ASSERT(pData != NULL);
240 240
241 switch (pData->data.nType) { 241 switch (pData->data.nType) {
242 case JS_GLOBALDATA_TYPE_NUMBER: 242 case JS_GLOBALDATA_TYPE_NUMBER:
243 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NUMBER, 243 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NUMBER,
244 pData->data.dData, false, "", 244 pData->data.dData, false, "",
245 v8::Local<v8::Object>(), pData->bPersistent == 1); 245 v8::Local<v8::Object>(), pData->bPersistent == 1);
246 FXJS_PutObjectNumber(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 246 FXJS_PutObjectNumber(NULL, m_pJSObject->ToV8Object(),
247 pData->data.sKey.UTF8Decode().c_str(), 247 pData->data.sKey.UTF8Decode().c_str(),
248 pData->data.dData); 248 pData->data.dData);
249 break; 249 break;
250 case JS_GLOBALDATA_TYPE_BOOLEAN: 250 case JS_GLOBALDATA_TYPE_BOOLEAN:
251 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_BOOLEAN, 0, 251 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_BOOLEAN, 0,
252 (bool)(pData->data.bData == 1), "", 252 (bool)(pData->data.bData == 1), "",
253 v8::Local<v8::Object>(), pData->bPersistent == 1); 253 v8::Local<v8::Object>(), pData->bPersistent == 1);
254 FXJS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 254 FXJS_PutObjectBoolean(NULL, m_pJSObject->ToV8Object(),
255 pData->data.sKey.UTF8Decode().c_str(), 255 pData->data.sKey.UTF8Decode().c_str(),
256 (bool)(pData->data.bData == 1)); 256 (bool)(pData->data.bData == 1));
257 break; 257 break;
258 case JS_GLOBALDATA_TYPE_STRING: 258 case JS_GLOBALDATA_TYPE_STRING:
259 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0, 259 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0,
260 false, pData->data.sData, v8::Local<v8::Object>(), 260 false, pData->data.sData, v8::Local<v8::Object>(),
261 pData->bPersistent == 1); 261 pData->bPersistent == 1);
262 FXJS_PutObjectString(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 262 FXJS_PutObjectString(NULL, m_pJSObject->ToV8Object(),
263 pData->data.sKey.UTF8Decode().c_str(), 263 pData->data.sKey.UTF8Decode().c_str(),
264 pData->data.sData.UTF8Decode().c_str()); 264 pData->data.sData.UTF8Decode().c_str());
265 break; 265 break;
266 case JS_GLOBALDATA_TYPE_OBJECT: { 266 case JS_GLOBALDATA_TYPE_OBJECT: {
267 v8::Isolate* pRuntime = 267 v8::Isolate* pRuntime = FXJS_GetRuntime(m_pJSObject->ToV8Object());
268 FXJS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject));
269 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(pRuntime, NULL, -1); 268 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(pRuntime, NULL, -1);
270 269
271 PutObjectProperty(pObj, &pData->data); 270 PutObjectProperty(pObj, &pData->data);
272 271
273 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0, 272 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0,
274 false, "", (v8::Local<v8::Object>)pObj, 273 false, "", pObj, pData->bPersistent == 1);
275 pData->bPersistent == 1); 274 FXJS_PutObjectObject(NULL, m_pJSObject->ToV8Object(),
276 FXJS_PutObjectObject(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 275 pData->data.sKey.UTF8Decode().c_str(), pObj);
277 pData->data.sKey.UTF8Decode().c_str(), 276
278 (v8::Local<v8::Object>)pObj);
279 } break; 277 } break;
280 case JS_GLOBALDATA_TYPE_NULL: 278 case JS_GLOBALDATA_TYPE_NULL:
281 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NULL, 0, false, 279 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NULL, 0, false,
282 "", v8::Local<v8::Object>(), 280 "", v8::Local<v8::Object>(),
283 pData->bPersistent == 1); 281 pData->bPersistent == 1);
284 FXJS_PutObjectNull(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 282 FXJS_PutObjectNull(NULL, m_pJSObject->ToV8Object(),
285 pData->data.sKey.UTF8Decode().c_str()); 283 pData->data.sKey.UTF8Decode().c_str());
286 break; 284 break;
287 } 285 }
288 } 286 }
289 } 287 }
290 288
291 void JSGlobalAlternate::CommitGlobalPersisitentVariables() { 289 void JSGlobalAlternate::CommitGlobalPersisitentVariables() {
292 ASSERT(m_pGlobalData); 290 ASSERT(m_pGlobalData);
293 for (auto it = m_mapGlobal.begin(); it != m_mapGlobal.end(); ++it) { 291 for (auto it = m_mapGlobal.begin(); it != m_mapGlobal.end(); ++it) {
294 CFX_ByteString name = it->first; 292 CFX_ByteString name = it->first;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 void JSGlobalAlternate::PutObjectProperty(v8::Local<v8::Object> pObj, 387 void JSGlobalAlternate::PutObjectProperty(v8::Local<v8::Object> pObj,
390 CJS_KeyValue* pData) { 388 CJS_KeyValue* pData) {
391 ASSERT(pData != NULL); 389 ASSERT(pData != NULL);
392 390
393 for (int i = 0, sz = pData->objData.Count(); i < sz; i++) { 391 for (int i = 0, sz = pData->objData.Count(); i < sz; i++) {
394 CJS_KeyValue* pObjData = pData->objData.GetAt(i); 392 CJS_KeyValue* pObjData = pData->objData.GetAt(i);
395 ASSERT(pObjData != NULL); 393 ASSERT(pObjData != NULL);
396 394
397 switch (pObjData->nType) { 395 switch (pObjData->nType) {
398 case JS_GLOBALDATA_TYPE_NUMBER: 396 case JS_GLOBALDATA_TYPE_NUMBER:
399 FXJS_PutObjectNumber(NULL, (v8::Local<v8::Object>)pObj, 397 FXJS_PutObjectNumber(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(),
400 pObjData->sKey.UTF8Decode().c_str(),
401 pObjData->dData); 398 pObjData->dData);
402 break; 399 break;
403 case JS_GLOBALDATA_TYPE_BOOLEAN: 400 case JS_GLOBALDATA_TYPE_BOOLEAN:
404 FXJS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)pObj, 401 FXJS_PutObjectBoolean(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(),
405 pObjData->sKey.UTF8Decode().c_str(), 402 pObjData->bData == 1);
406 (bool)(pObjData->bData == 1));
407 break; 403 break;
408 case JS_GLOBALDATA_TYPE_STRING: 404 case JS_GLOBALDATA_TYPE_STRING:
409 FXJS_PutObjectString(NULL, (v8::Local<v8::Object>)pObj, 405 FXJS_PutObjectString(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(),
410 pObjData->sKey.UTF8Decode().c_str(),
411 pObjData->sData.UTF8Decode().c_str()); 406 pObjData->sData.UTF8Decode().c_str());
412 break; 407 break;
413 case JS_GLOBALDATA_TYPE_OBJECT: { 408 case JS_GLOBALDATA_TYPE_OBJECT: {
414 v8::Isolate* pRuntime = 409 v8::Isolate* pRuntime = FXJS_GetRuntime(m_pJSObject->ToV8Object());
415 FXJS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject));
416 v8::Local<v8::Object> pNewObj = 410 v8::Local<v8::Object> pNewObj =
417 FXJS_NewFxDynamicObj(pRuntime, NULL, -1); 411 FXJS_NewFxDynamicObj(pRuntime, NULL, -1);
418 PutObjectProperty(pNewObj, pObjData); 412 PutObjectProperty(pNewObj, pObjData);
419 FXJS_PutObjectObject(NULL, (v8::Local<v8::Object>)pObj, 413 FXJS_PutObjectObject(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(),
420 pObjData->sKey.UTF8Decode().c_str(), 414 pNewObj);
421 (v8::Local<v8::Object>)pNewObj);
422 } break; 415 } break;
423 case JS_GLOBALDATA_TYPE_NULL: 416 case JS_GLOBALDATA_TYPE_NULL:
424 FXJS_PutObjectNull(NULL, (v8::Local<v8::Object>)pObj, 417 FXJS_PutObjectNull(NULL, pObj, pObjData->sKey.UTF8Decode().c_str());
425 pObjData->sKey.UTF8Decode().c_str());
426 break; 418 break;
427 } 419 }
428 } 420 }
429 } 421 }
430 422
431 void JSGlobalAlternate::DestroyGlobalPersisitentVariables() { 423 void JSGlobalAlternate::DestroyGlobalPersisitentVariables() {
432 for (const auto& pair : m_mapGlobal) { 424 for (const auto& pair : m_mapGlobal) {
433 delete pair.second; 425 delete pair.second;
434 } 426 }
435 m_mapGlobal.clear(); 427 m_mapGlobal.clear();
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 return CJS_Value::VT_boolean; 524 return CJS_Value::VT_boolean;
533 if (nHash == JSCONST_nDateHash) 525 if (nHash == JSCONST_nDateHash)
534 return CJS_Value::VT_date; 526 return CJS_Value::VT_date;
535 if (nHash == JSCONST_nObjectHash) 527 if (nHash == JSCONST_nObjectHash)
536 return CJS_Value::VT_object; 528 return CJS_Value::VT_object;
537 if (nHash == JSCONST_nFXobjHash) 529 if (nHash == JSCONST_nFXobjHash)
538 return CJS_Value::VT_fxobject; 530 return CJS_Value::VT_fxobject;
539 531
540 return CJS_Value::VT_unknown; 532 return CJS_Value::VT_unknown;
541 } 533 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/javascript/JS_Value.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698