Skip to content

Commit 45b0646

Browse files
committed
Refactor create_js_root_obj -> get_or_create_js_obj
1 parent f3e0c3f commit 45b0646

File tree

10 files changed

+24
-22
lines changed

10 files changed

+24
-22
lines changed

frameworks/js-bindings/bindings/manual/3d/jsb_cocos2dx_3d_manual.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ void register_all_cocos2dx_3d_manual(JSContext *cx, JS::HandleObject global)
147147
JS::RootedValue tmpVal(cx);
148148
JS::RootedObject ccObj(cx);
149149
JS::RootedObject tmpObj(cx);
150-
create_js_root_obj(cx, global, "cc", &ccObj);
150+
get_or_create_js_obj(cx, global, "cc", &ccObj);
151151

152152
JS_GetProperty(cx, ccObj, "Sprite3D", &tmpVal);
153153
tmpObj = tmpVal.toObjectOrNull();

frameworks/js-bindings/bindings/manual/ScriptingCore.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -393,14 +393,17 @@ void registerDefaultClasses(JSContext* cx, JS::HandleObject global) {
393393
JS::RootedValue nsval(cx);
394394
JS::RootedObject ns(cx);
395395
JS_GetProperty(cx, global, "cc", &nsval);
396-
ns = nsval.toObjectOrNull();
397396
// Not exist, create it
398-
if (ns.get() == nullptr)
397+
if (nsval == JSVAL_VOID)
399398
{
400-
ns = JS_NewObject(cx, NULL, JS::NullPtr(), JS::NullPtr());
399+
ns.set(JS_NewObject(cx, NULL, JS::NullPtr(), JS::NullPtr()));
401400
nsval = OBJECT_TO_JSVAL(ns);
402401
JS_SetProperty(cx, global, "cc", nsval);
403402
}
403+
else
404+
{
405+
ns.set(nsval.toObjectOrNull());
406+
}
404407

405408
//
406409
// Javascript controller (__jsc__)

frameworks/js-bindings/bindings/manual/chipmunk/js_bindings_chipmunk_manual.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -581,13 +581,13 @@ void JSPROXY_CCPhysicsSprite_createClass(JSContext *cx, JS::HandleObject globalO
581581

582582
void register_CCPhysicsSprite(JSContext *cx, JS::HandleObject obj) {
583583
JS::RootedObject ccObj(cx);
584-
create_js_root_obj(cx, obj, "cc", &ccObj);
584+
get_or_create_js_obj(cx, obj, "cc", &ccObj);
585585
JSPROXY_CCPhysicsSprite_createClass(cx, ccObj);
586586
}
587587

588588
void register_CCPhysicsDebugNode(JSContext *cx, JS::HandleObject obj) {
589589
JS::RootedObject ccObj(cx);
590-
create_js_root_obj(cx, obj, "cc", &ccObj);
590+
get_or_create_js_obj(cx, obj, "cc", &ccObj);
591591
JSB_CCPhysicsDebugNode_createClass(cx, ccObj, "PhysicsDebugNode");
592592
}
593593

frameworks/js-bindings/bindings/manual/cocos2d_specifics.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5139,18 +5139,16 @@ bool js_console_log(JSContext *cx, uint32_t argc, jsval *vp)
51395139
return false;
51405140
}
51415141

5142-
void create_js_root_obj(JSContext* cx, JS::HandleObject obj, const std::string &name, JS::MutableHandleObject jsObj)
5142+
void get_or_create_js_obj(JSContext* cx, JS::HandleObject obj, const std::string &name, JS::MutableHandleObject jsObj)
51435143
{
51445144
JS::RootedValue nsval(cx);
5145-
JS::RootedObject tmp(cx);
51465145
JS_GetProperty(cx, obj, name.c_str(), &nsval);
5147-
tmp = nsval.toObjectOrNull();
5148-
if (!tmp.get()) {
5146+
if (nsval == JSVAL_VOID) {
51495147
jsObj.set(JS_NewObject(cx, NULL, JS::NullPtr(), JS::NullPtr()));
51505148
nsval = OBJECT_TO_JSVAL(jsObj);
51515149
JS_SetProperty(cx, obj, name.c_str(), nsval);
51525150
} else {
5153-
jsObj.set(tmp);
5151+
jsObj.set(nsval.toObjectOrNull());
51545152
}
51555153
}
51565154

@@ -5159,9 +5157,10 @@ void register_cocos2dx_js_core(JSContext* cx, JS::HandleObject global)
51595157
JS::RootedObject ccObj(cx);
51605158
JS::RootedValue tmpVal(cx);
51615159
JS::RootedObject tmpObj(cx);
5162-
create_js_root_obj(cx, global, "cc", &ccObj);
5160+
get_or_create_js_obj(cx, global, "cc", &ccObj);
51635161

5164-
create_js_root_obj(cx, ccObj, "PlistParser", &tmpObj);
5162+
JS_GetProperty(cx, ccObj, "PlistParser", &tmpVal);
5163+
tmpObj = tmpVal.toObjectOrNull();
51655164
JS_DefineFunction(cx, tmpObj, "getInstance", js_PlistParser_getInstance, 0, JSPROP_READONLY | JSPROP_PERMANENT);
51665165
JS::RootedObject proto(cx, jsb_cocos2d_SAXParser_prototype);
51675166
JS_DefineFunction(cx, proto, "parse", js_PlistParser_parse, 1, JSPROP_READONLY | JSPROP_PERMANENT);
@@ -5400,7 +5399,7 @@ void register_cocos2dx_js_core(JSContext* cx, JS::HandleObject global)
54005399
JS_DefineFunction(cx, ccObj, "unregisterTouchDelegate", js_cocos2dx_JSTouchDelegate_unregisterTouchDelegate, 1, JSPROP_READONLY | JSPROP_PERMANENT);
54015400

54025401
JS::RootedObject mathObj(cx);
5403-
create_js_root_obj(cx, ccObj, "math", &mathObj);
5402+
get_or_create_js_obj(cx, ccObj, "math", &mathObj);
54045403
JS_DefineFunction(cx, mathObj, "obbGetCorners", js_cocos2dx_ccobbGetCorners, 1, JSPROP_READONLY | JSPROP_PERMANENT);
54055404
JS_DefineFunction(cx, mathObj, "obbIntersectsObb", js_cocos2dx_ccobbIntersects, 1, JSPROP_READONLY | JSPROP_PERMANENT);
54065405
JS_DefineFunction(cx, mathObj, "rayIntersectsObb", js_cocos2dx_ccrayIntersectsObb, 1, JSPROP_READONLY | JSPROP_PERMANENT);
@@ -5413,7 +5412,7 @@ void register_cocos2dx_js_core(JSContext* cx, JS::HandleObject global)
54135412
js_register_cocos2dx_EventKeyboard(cx, ccObj);
54145413

54155414
JS::RootedObject consoleObj(cx);
5416-
create_js_root_obj(cx, global, "console", &consoleObj);
5415+
get_or_create_js_obj(cx, global, "console", &consoleObj);
54175416

54185417
JS_DefineFunction(cx, consoleObj, "log", js_console_log, 1, JSPROP_READONLY | JSPROP_PERMANENT);
54195418
}

frameworks/js-bindings/bindings/manual/cocos2d_specifics.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,6 @@ bool js_cocos2dx_Node_onExitTransitionDidStart(JSContext *cx, uint32_t argc, jsv
265265
bool js_cocos2dx_Component_onEnter(JSContext *cx, uint32_t argc, jsval *vp);
266266
bool js_cocos2dx_Component_onExit(JSContext *cx, uint32_t argc, jsval *vp);
267267

268-
void create_js_root_obj(JSContext* cx, JS::HandleObject obj, const std::string &name, JS::MutableHandleObject jsObj);
268+
void get_or_create_js_obj(JSContext* cx, JS::HandleObject obj, const std::string &name, JS::MutableHandleObject jsObj);
269269

270270
#endif

frameworks/js-bindings/bindings/manual/cocosbuilder/js_bindings_ccbreader.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ void register_CCBuilderReader(JSContext *cx, JS::HandleObject global)
323323
JS::RootedObject ccObj(cx);
324324
JS::RootedValue tmpVal(cx);
325325
JS::RootedObject tmpObj(cx);
326-
create_js_root_obj(cx, global, "cc", &ccObj);
326+
get_or_create_js_obj(cx, global, "cc", &ccObj);
327327

328328
JS_GetProperty(cx, ccObj, "_Reader", &tmpVal);
329329
tmpObj = tmpVal.toObjectOrNull();

frameworks/js-bindings/bindings/manual/extension/jsb_cocos2dx_extension_manual.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,7 +1041,7 @@ void register_all_cocos2dx_extension_manual(JSContext* cx, JS::HandleObject glob
10411041
JS::RootedObject ccObj(cx);
10421042
JS::RootedValue tmpVal(cx);
10431043
JS::RootedObject tmpObj(cx);
1044-
create_js_root_obj(cx, global, "cc", &ccObj);
1044+
get_or_create_js_obj(cx, global, "cc", &ccObj);
10451045

10461046
JS::RootedObject am(cx, jsb_cocos2d_extension_AssetsManagerEx_prototype);
10471047
JS_DefineFunction(cx, am, "retain", js_cocos2dx_ext_retain, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT);
@@ -1067,7 +1067,7 @@ void register_all_cocos2dx_extension_manual(JSContext* cx, JS::HandleObject glob
10671067
JS_DefineFunction(cx, tmpObj, "create", js_cocos2dx_CCTableView_create, 3, JSPROP_READONLY | JSPROP_PERMANENT);
10681068

10691069
JS::RootedObject jsbObj(cx);
1070-
create_js_root_obj(cx, global, "jsb", &jsbObj);
1070+
get_or_create_js_obj(cx, global, "cc", &jsbObj);
10711071

10721072
JS_DefineFunction(cx, jsbObj, "loadRemoteImg", js_load_remote_image, 2, JSPROP_READONLY | JSPROP_PERMANENT);
10731073
}

frameworks/js-bindings/bindings/manual/jsb_opengl_registration.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ void JSB_register_opengl(JSContext *_cx, JS::HandleObject object)
4545
JS_SetProperty(_cx, object, "gl", openglVal);
4646

4747
JS::RootedObject ccns(_cx);
48-
create_js_root_obj(_cx, object, "cc", &ccns);
48+
get_or_create_js_obj(_cx, object, "cc", &ccns);
4949

5050
js_register_cocos2dx_GLNode(_cx, ccns);
5151

samples/js-tests/project/Classes/js_DrawNode3D_bindings.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,6 @@ void js_register_cocos2dx_DrawNode3D(JSContext *cx, JS::HandleObject global) {
588588
void register_DrawNode3D_bindings(JSContext *cx, JS::HandleObject global)
589589
{
590590
JS::RootedObject ccobj(cx);
591-
create_js_root_obj(cx, global, "cc", &ccobj);
591+
get_or_create_js_obj(cx, global, "cc", &ccobj);
592592
js_register_cocos2dx_DrawNode3D(cx, ccobj);
593593
}

samples/js-tests/project/Classes/js_Effect3D_bindings.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ void js_register_cocos2dx_EffectSprite3D(JSContext *cx, JS::HandleObject global)
771771
void register_Effect3D_bindings(JSContext *cx, JS::HandleObject global)
772772
{
773773
JS::RootedObject ccobj(cx);
774-
create_js_root_obj(cx, global, "cc", &ccobj);
774+
get_or_create_js_obj(cx, global, "cc", &ccobj);
775775
js_register_cocos2dx_Effect3DOutline(cx, ccobj);
776776
js_register_cocos2dx_EffectSprite3D(cx, ccobj);
777777
}

0 commit comments

Comments
 (0)