Skip to content

Commit 891e120

Browse files
committed
Merge pull request #244 from pandamicro/master
Fixed #4742: SAXParser renamed to PlistParser in JSB
2 parents a6f0520 + 11d5bc7 commit 891e120

File tree

8 files changed

+61
-99
lines changed

8 files changed

+61
-99
lines changed

frameworks/js-bindings/bindings/auto/api/jsb_cocos2dx_auto_api.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15874,7 +15874,7 @@ getInstance : function (
1587415874
/**
1587515875
* @class SAXParser
1587615876
*/
15877-
cc.SAXParser = {
15877+
cc.PlistParser = {
1587815878

1587915879
/**
1588015880
* @method init

frameworks/js-bindings/bindings/auto/jsb_cocos2dx_auto.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48444,7 +48444,7 @@ void js_cocos2d_SAXParser_finalize(JSFreeOp *fop, JSObject *obj) {
4844448444

4844548445
void js_register_cocos2dx_SAXParser(JSContext *cx, JSObject *global) {
4844648446
jsb_cocos2d_SAXParser_class = (JSClass *)calloc(1, sizeof(JSClass));
48447-
jsb_cocos2d_SAXParser_class->name = "SAXParser";
48447+
jsb_cocos2d_SAXParser_class->name = "PlistParser";
4844848448
jsb_cocos2d_SAXParser_class->addProperty = JS_PropertyStub;
4844948449
jsb_cocos2d_SAXParser_class->delProperty = JS_DeletePropertyStub;
4845048450
jsb_cocos2d_SAXParser_class->getProperty = JS_PropertyStub;
@@ -48479,7 +48479,7 @@ void js_register_cocos2dx_SAXParser(JSContext *cx, JSObject *global) {
4847948479
// make the class enumerable in the registered namespace
4848048480
// bool found;
4848148481
//FIXME: Removed in Firefox v27
48482-
// JS_SetPropertyAttributes(cx, global, "SAXParser", JSPROP_ENUMERATE | JSPROP_READONLY, &found);
48482+
// JS_SetPropertyAttributes(cx, global, "PlistParser", JSPROP_ENUMERATE | JSPROP_READONLY, &found);
4848348483

4848448484
// add the proto and JSClass to the type->js info hash table
4848548485
TypeTest<cocos2d::SAXParser> t;

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

Lines changed: 16 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -4074,9 +4074,9 @@ bool js_cocos2dx_NodeGrid_setGrid(JSContext *cx, uint32_t argc, jsval *vp)
40744074
return false;
40754075
}
40764076

4077-
// cc.SAXParser.getInstance()
4078-
bool js_SAXParser_getInstance(JSContext *cx, unsigned argc, JS::Value *vp) {
4079-
__JSSAXDelegator* delegator = __JSSAXDelegator::getInstance();
4077+
// cc.PlistParser.getInstance()
4078+
bool js_PlistParser_getInstance(JSContext *cx, unsigned argc, JS::Value *vp) {
4079+
__JSPlistDelegator* delegator = __JSPlistDelegator::getInstance();
40804080
SAXParser* parser = delegator->getParser();
40814081

40824082
jsval jsret;
@@ -4096,9 +4096,9 @@ bool js_SAXParser_getInstance(JSContext *cx, unsigned argc, JS::Value *vp) {
40964096

40974097
return true;
40984098
}
4099-
// cc.SAXParser.getInstance().parse(filepath)
4100-
bool js_SAXParser_parse(JSContext *cx, unsigned argc, JS::Value *vp) {
4101-
__JSSAXDelegator* delegator = __JSSAXDelegator::getInstance();
4099+
// cc.PlistParser.getInstance().parse(filepath)
4100+
bool js_PlistParser_parse(JSContext *cx, unsigned argc, JS::Value *vp) {
4101+
__JSPlistDelegator* delegator = __JSPlistDelegator::getInstance();
41024102

41034103
bool ok = true;
41044104
jsval *argv = JS_ARGV(cx, vp);
@@ -4124,55 +4124,12 @@ bool js_SAXParser_parse(JSContext *cx, unsigned argc, JS::Value *vp) {
41244124
JS_ReportError(cx, "js_SAXParser_parse : wrong number of arguments: %d, was expecting %d", argc, 1);
41254125
return false;
41264126
}
4127-
// cc.SAXParser.getInstance().preloadPlist(filepath)
4128-
bool js_SAXParser_preloadPlist(JSContext *cx, unsigned argc, JS::Value *vp) {
4129-
__JSSAXDelegator* delegator = __JSSAXDelegator::getInstance();
4130-
4131-
bool ok = true;
4132-
jsval *argv = JS_ARGV(cx, vp);
4133-
if (argc == 1) {
4134-
std::string arg0;
4135-
ok &= jsval_to_std_string(cx, argv[0], &arg0);
4136-
JSB_PRECONDITION2(ok, cx, false, "Error processing arguments");
4137-
4138-
ok &= delegator->preloadPlist(arg0);
4139-
if(!ok)
4140-
JS_ReportError(cx, "js_SAXParser_preloadPlist : file not found %d", &arg0, 1);
4141-
return true;
4142-
}
4143-
JS_ReportError(cx, "js_SAXParser_parse : wrong number of arguments: %d, was expecting %d", argc, 1);
4144-
return false;
4145-
}
4146-
// cc.SAXParser.getInstance().unloadPlist(filepath)
4147-
bool js_SAXParser_unloadPlist(JSContext *cx, unsigned argc, JS::Value *vp) {
4148-
return true;
4149-
}
4150-
// cc.SAXParser.getInstance().getList(key)
4151-
bool js_SAXParser_getList(JSContext *cx, unsigned argc, JS::Value *vp) {
4152-
__JSSAXDelegator* delegator = __JSSAXDelegator::getInstance();
4153-
4154-
bool ok = true;
4155-
jsval *argv = JS_ARGV(cx, vp);
4156-
if (argc == 1) {
4157-
std::string arg0;
4158-
ok &= jsval_to_std_string(cx, argv[0], &arg0);
4159-
JSB_PRECONDITION2(ok, cx, false, "Error processing arguments");
4160-
4161-
std::string value = delegator->getList(arg0);
4162-
jsval ret = std_string_to_jsval(cx, value);
4163-
JS_SET_RVAL(cx, vp, ret);
4164-
4165-
return true;
4166-
}
4167-
JS_ReportError(cx, "js_SAXParser_parse : wrong number of arguments: %d, was expecting %d", argc, 1);
4168-
return false;
4169-
}
41704127

4171-
cocos2d::SAXParser* __JSSAXDelegator::getParser() {
4128+
cocos2d::SAXParser* __JSPlistDelegator::getParser() {
41724129
return &_parser;
41734130
}
41744131

4175-
std::string __JSSAXDelegator::parse(const std::string& path) {
4132+
std::string __JSPlistDelegator::parse(const std::string& path) {
41764133
_result.clear();
41774134

41784135
SAXParser parser;
@@ -4185,11 +4142,11 @@ std::string __JSSAXDelegator::parse(const std::string& path) {
41854142
return _result;
41864143
}
41874144

4188-
__JSSAXDelegator::~__JSSAXDelegator(){
4145+
__JSPlistDelegator::~__JSPlistDelegator(){
41894146
CCLOGINFO("deallocing __JSSAXDelegator: %p", this);
41904147
}
41914148

4192-
void __JSSAXDelegator::startElement(void *ctx, const char *name, const char **atts) {
4149+
void __JSPlistDelegator::startElement(void *ctx, const char *name, const char **atts) {
41934150
_isStoringCharacters = true;
41944151
_currentValue.clear();
41954152

@@ -4208,7 +4165,7 @@ void __JSSAXDelegator::startElement(void *ctx, const char *name, const char **at
42084165
}
42094166
}
42104167

4211-
void __JSSAXDelegator::endElement(void *ctx, const char *name) {
4168+
void __JSPlistDelegator::endElement(void *ctx, const char *name) {
42124169
_isStoringCharacters = false;
42134170
std::string elementName = (char*)name;
42144171

@@ -4232,7 +4189,7 @@ void __JSSAXDelegator::endElement(void *ctx, const char *name) {
42324189
}
42334190
}
42344191

4235-
void __JSSAXDelegator::textHandler(void *ctx, const char *ch, int len) {
4192+
void __JSPlistDelegator::textHandler(void *ctx, const char *ch, int len) {
42364193
CC_UNUSED_PARAM(ctx);
42374194
std::string text((char*)ch, 0, len);
42384195

@@ -4540,13 +4497,10 @@ void register_cocos2dx_js_extensions(JSContext* cx, JSObject* global)
45404497
JS_DefineFunction(cx, tmpObj, "create", js_callFunc, 1, JSPROP_READONLY | JSPROP_PERMANENT);
45414498
JS_DefineFunction(cx, jsb_cocos2d_CallFunc_prototype, "initWithFunction", js_cocos2dx_CallFunc_initWithFunction, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT);
45424499

4543-
tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return cc.SAXParser; })()"));
4544-
JS_DefineFunction(cx, tmpObj, "getInstance", js_SAXParser_getInstance, 0, JSPROP_READONLY | JSPROP_PERMANENT);
4545-
tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return cc.SAXParser.getInstance(); })()"));
4546-
JS_DefineFunction(cx, tmpObj, "parse", js_SAXParser_parse, 1, JSPROP_READONLY | JSPROP_PERMANENT);
4547-
JS_DefineFunction(cx, tmpObj, "preloadPlist", js_SAXParser_preloadPlist, 1, JSPROP_READONLY | JSPROP_PERMANENT);
4548-
JS_DefineFunction(cx, tmpObj, "unloadPlist", js_SAXParser_unloadPlist, 1, JSPROP_READONLY | JSPROP_PERMANENT);
4549-
JS_DefineFunction(cx, tmpObj, "getList", js_SAXParser_getList, 1, JSPROP_READONLY | JSPROP_PERMANENT);
4500+
tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return cc.PlistParser; })()"));
4501+
JS_DefineFunction(cx, tmpObj, "getInstance", js_PlistParser_getInstance, 0, JSPROP_READONLY | JSPROP_PERMANENT);
4502+
tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return cc.PlistParser.getInstance(); })()"));
4503+
JS_DefineFunction(cx, tmpObj, "parse", js_PlistParser_parse, 1, JSPROP_READONLY | JSPROP_PERMANENT);
45504504

45514505

45524506
tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return cc.GLProgram; })()"));

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

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -202,31 +202,23 @@ class JSTouchDelegate: public cocos2d::Ref
202202
};
203203

204204

205-
class CC_DLL __JSSAXDelegator: public cocos2d::SAXDelegator
205+
class CC_DLL __JSPlistDelegator: public cocos2d::SAXDelegator
206206
{
207207
public:
208-
static __JSSAXDelegator* getInstance() {
209-
static __JSSAXDelegator* pInstance = NULL;
208+
static __JSPlistDelegator* getInstance() {
209+
static __JSPlistDelegator* pInstance = NULL;
210210
if (pInstance == NULL) {
211-
pInstance = new __JSSAXDelegator();
211+
pInstance = new __JSPlistDelegator();
212212
}
213213
return pInstance;
214214
};
215215

216-
~__JSSAXDelegator();
216+
~__JSPlistDelegator();
217217

218218
cocos2d::SAXParser* getParser();
219219

220220
std::string parse(const std::string& path);
221221

222-
bool preloadPlist(const std::string& path) {
223-
return true;
224-
}
225-
226-
std::string getList(const std::string& path) {
227-
return path;
228-
}
229-
230222
// implement pure virtual methods of SAXDelegator
231223
void startElement(void *ctx, const char *name, const char **atts);
232224
void endElement(void *ctx, const char *name);

frameworks/js-bindings/bindings/script/jsb_boot.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ cc.shaderCache = cc.ShaderCache.getInstance();
597597
cc.animationCache = cc.AnimationCache.getInstance();
598598
cc.spriteFrameCache = cc.SpriteFrameCache.getInstance();
599599
//cc.saxParser
600-
cc.plistParser = cc.SAXParser.getInstance();
600+
cc.plistParser = cc.PlistParser.getInstance();
601601
//cc.tiffReader;
602602
//cc.imeDispatcher;
603603

frameworks/js-bindings/bindings/script/jsb_cocos2d.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,16 @@ _Class.defaultPixelFormat = _Class.PIXEL_FORMAT_DEFAULT;
126126
cc.ONE = 1;
127127
cc.ZERO = 0;
128128
cc.SRC_ALPHA = 0x0302;
129+
cc.SRC_ALPHA_SATURATE = 0x308;
130+
cc.SRC_COLOR = 0x300;
131+
cc.DST_ALPHA = 0x304;
132+
cc.DST_COLOR = 0x306;
129133
cc.ONE_MINUS_SRC_ALPHA = 0x0303;
134+
cc.ONE_MINUS_SRC_COLOR = 0x301;
135+
cc.ONE_MINUS_DST_ALPHA = 0x305;
130136
cc.ONE_MINUS_DST_COLOR = 0x0307;
137+
cc.ONE_MINUS_CONSTANT_ALPHA = 0x8004;
138+
cc.ONE_MINUS_CONSTANT_COLOR = 0x8002;
131139

132140

133141
//
@@ -209,6 +217,15 @@ cc.lerp = function (a, b, r) {
209217
return a + (b - a) * r;
210218
};
211219

220+
/**
221+
* get a random number from 0 to 0xffffff
222+
* @function
223+
* @returns {number}
224+
*/
225+
cc.rand = function () {
226+
return Math.random() * 0xffffff;
227+
};
228+
212229
/**
213230
* returns a random float between -1 and 1
214231
* @return {Number}
@@ -1829,6 +1846,4 @@ cc.DrawNode = cc._DrawNode.extend({
18291846
});
18301847
cc.DrawNode.create = function () {
18311848
return new cc.DrawNode();
1832-
};
1833-
1834-
//cc.DrawNode = cc._DrawNode;
1849+
};

frameworks/js-bindings/bindings/script/jsb_create_apis.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -161,23 +161,23 @@ _p._ctor = function(value, callback, target) {
161161

162162
_p = cc.MenuItemSprite.prototype;
163163
_p._ctor = function(normalSprite, selectedSprite, three, four, five) {
164-
var argc = arguments.length;
165-
if (argc > 1) {
166-
normalSprite = arguments[0];
167-
selectedSprite = arguments[1];
164+
if (selectedSprite) {
165+
normalSprite = normalSprite;
166+
selectedSprite = selectedSprite;
168167
var disabledImage, target, callback;
169-
if (argc == 5) {
170-
disabledImage = arguments[2];
171-
callback = arguments[3];
172-
target = arguments[4];
173-
} else if (argc == 4 && typeof arguments[3] === "function") {
174-
disabledImage = arguments[2];
175-
callback = arguments[3];
176-
} else if (argc == 4 && typeof arguments[2] === "function") {
177-
target = arguments[3];
178-
callback = arguments[2];
179-
} else if (argc <= 2) {
180-
disabledImage = arguments[2];
168+
if (five) {
169+
disabledImage = three;
170+
callback = four;
171+
target = five;
172+
} else if (four && typeof four === "function") {
173+
disabledImage = three;
174+
callback = four;
175+
} else if (four && typeof three === "function") {
176+
target = four;
177+
callback = three;
178+
disabledImage = normalSprite;
179+
} else if (three === undefined) {
180+
disabledImage = normalSprite;
181181
}
182182
callback = callback ? callback.bind(target) : null;
183183
this.initWithNormalSprite(normalSprite, selectedSprite, disabledImage, callback);

tools/tojs/cocos2dx.ini

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ rename_functions = SpriteFrameCache::[addSpriteFramesWithFile=addSpriteFrames ge
142142
rename_classes = ParticleSystemQuad::ParticleSystem,
143143
SimpleAudioEngine::AudioEngine,
144144
__NodeRGBA::NodeRGBA,
145-
__LayerRGBA::LayerRGBA
145+
__LayerRGBA::LayerRGBA,
146+
SAXParser::PlistParser
146147

147148
# for all class names, should we remove something when registering in the target VM?
148149
remove_prefix =

0 commit comments

Comments
 (0)