Commit Graph

44 Commits

Author SHA1 Message Date
James Chen b2ecbca549 fix JSB Memory leaks and crashes (#18577)
* [game] Uses global compartment.

* fixed cocostudio bug.

* Fixes Memory leak for JSB.

* Memory leak in ActionsTest.js

* js_callfunc binding check whether jsThis is valid.

* Fixes potential crash in DownloadDelegator .

* CCLOG -> CCLOGINFO for garbage collect callback.

* jsb_c_proxy_s is a struct which contains a JS::Heap<> cpp object. Need to use `new`/`delete` to manage its memory.

* The functionality of JS controls C++ object's lifecycle isn't stable enough, please don't enable it now. Make an error if user enables it.

* Compilation error fixes.

* Removes unused JSAutoCompartment since we use JS_EnterCompartment/JS_LeaveCompartment now.
2018-01-10 14:39:45 +08:00
David DeSimone 2f3a7df55a Fixing serious XMLHTTP leak when CC_ENABLE_GC_FOR_NATIVE_OBJECTS enabled (#17844)
* Fixing issue where XMLHttpRequests would not have their destructor fire if CC_ENABLE_GC_FOR_NATIVE_OBJECTS was set. This was due to mismanagement of JSHeap object tracing.

* Removing unused variables in js_add_object_root.
2017-05-22 13:40:07 +08:00
RickyZheng001 f8e325792b V3.15 (#17752)
* remove APP_SHORT_COMMANDS setting (#17722)

some developers report it will cause error on Windows though i can not reproduce it. It is strange, the setting is used to resolve command length limitation on Windows.

* Particle font size should be a const value (#17676)

* Particle font size should be a const value

* Minor fix: CCStencilStateManager.hpp -> CCStencilStateManager.h in xcode project.

* JSB SocketIO.connect supports to pass a CA cert file (#17736)

* JSB SocketIO.connect supports to pass a CA cert file

* The second parameter of SocketIO.connect function is probably a `option` object. JSB just ignores it.
2017-04-27 09:25:20 +08:00
pandamicro 0e0987d337 Support notify progression in XMLHTTPRequest (#17509)
* Support notify progression in XMLHTTPRequest

* Fix indent

* Fix issues

* fix issue
2017-03-16 14:09:51 +08:00
pandamicro 0eec73ba43 Bindings fix and assets manger ex fix (#17115)
* Fix custom event being discard during event emission

* Fix tilemap black line issue

* Fix auto bindings config

* Adapt websocket to new memory model

* Improve cocos2d_specifics code stability

* Fix issue with get_or_create_js_object function

* Improve memory usage in function wrapper invocation

* Use JS Function bind to avoid memory tracking issues

* Support size parameter to collect total byte size before update process

* Fix download resuming issue on Android

* Remove temporary assets when temporary manifest is invalid or out of date

* Use version compare handle to compare manifests versions

* Support max concurrent tasks setting & download verify callback

* Add Manifest::Asset conversion

* Avoid crash caused by wrappers

* Sync implementation of tested and published AssetsManagerEx from Cocos Creator

* Fix linux compilation issues
2017-03-15 16:09:02 +08:00
James Chen 619e012d9b [WebSocket] Adds support for getting url and server selected protocol (#17381)
* [WebSocket] Adds support for getting url and server selected protocol

* Adds const keyword for getter methods, and make LOGE also works in release mode.
2017-02-20 09:44:20 +08:00
CocosRobot d07794052f Update license to 2017 (#17362)
* Typo: CopyRight -> Copyright

* Copyright update: chukong-inc.com -> Chukong Technologies Inc.

* [js files] Copyright update: 2014 -> 2014-2017

* [cpp files] Copyright update: 2014 -> 2014-2017

* Copyright update: 2015 -> 2015-2017

* [js files] Copyright update: 2014 -> 2014-2017

* Copyright update: 2016 -> 2016-2017

* Copyright update: 2013 -> 2013-2017

* Copyright update: 201?-201? -> 201?-2017

* License year fixes.

* Liscene year fix in CCRay.cpp

* Updates license years in CCGLProgramState.h & CCGLProgramStateCache.h
2017-02-14 14:36:57 +08:00
James Chen 4237639dd6 Some fixes for websocket (#17342)
* libwebsockets & curl are dynamic libraries now, modify project configuration for win32.
Updates WebSocketTest.cpp to test wss connection.

* Corrects some logic in WebSocket.cpp. Adds wss test case. WebSocketTest suggests developers to use `WebSocket::closeAsync` method which will not block current thread.

* mutex unlock fix in WebSocket.cpp. Reverts TEST URL.

* Allows self-assign cert.

* Each ws connection will create a virutal host now. Supports self-signed cert and update test case to suggest developer use ‘closeAsync’.

* Updates deps to 123.
2017-02-13 15:15:23 +08:00
kosmosR2 44fb4ba3bc To use some HTTP client library those use `send(null)` like `superagent`,`XMLHTTPRequest` should send a empty request instead of abort. (#16989) 2017-01-05 16:12:03 +08:00
pandamicro a715e3169f Sync issue fixes from creator (#17041)
* Add EventDispatcher#hasEventListener (sync from creator)

* Fix function wrapper using js object during its gc

* Support more system languages

* Direct log/error for better understanding problems & add sys.now

* Synchronize Editbox APIs

* Synchronize Scheduler.PRIORITY_NON_SYSTEM const

* Upgrade web engine

* Upgrade test cases

* Manually bind EventDispatcher::addCustomEventListener to avoid memory issue

* Manual bind EventListeners’ create to avoid memory issue

* Fix compilation issue when COCOS_DEBUG = 2

* Unify function name of Texture2D::releaseTexture

* Fix compilation issues and update web & bindings-generator

* Fix lua compilation issue

* Use %ld instead of %zd

* Separate FinalizeHook for ref objects and non ref objects

* Fix spine TrackEntry recursive conversion issue by using getter

* Fix crash during Wrappers deallocation (possible to have leak)

* Increase default JS heap to 32 mb

* Update engine version

* Add change log of web engine

* Improve cc.formatStr

* Fix chipmunk crash issues when using setDefaultCollisionHandler

* Add change log for JSB and update web engine ref
2016-12-21 13:39:34 +08:00
pyrosphere 663bb4d7ed No CC_UNUSED_PARAM (#16812)
* Added -Wno-unused-parameter and removed all uses of the CC_UNUSED_PARAM macro

* Commented unused parameter names in .cpp files which previously used CC_UNUSED_PARAM

* Reverted -Wno-unused-param flag.
Moved deprecated touch methods definitions to .cpp file.
Commented more unused parameter names.

* Fixed some errors and warnings caused by the previous commit.

* Commented remaining unused parameter names in .cpp files.

* Fixed unused parameter warnings in headers.

* Fixed some more unused parameter warnings.

* Fixed some more unused parameters warnings.

* Fixed mistake in previous commit, missing ComAudioReader:: in method. Other warnings.

* Fixed build errors.

* Added missing file to CMakeLists
2016-11-16 09:48:37 +08:00
minggo 04fd2b16b2 merge v3.13 back to v3 2016-08-29 11:57:13 +08:00
pandamicro f0be4f3069 Merge part of Cocos2d-x-lite (#16380)
* Update js auto binding settings with new ndk version

* Remove unnecessary property from Ref

* Merge part of Cocos2d-x-lite :
1. Improve network bindings
2. Use nullptr instead of NULL
3. Remove usage of some deprecated APIs
4. Add some defensive code and cleanup

* Fix spine track entry circle referencing issue

* cocos2d/cocos2d-x#16327: Fix global object leak issue in JSB

* Improve ScriptingCore::evalString, old implementation have been deprecated in Spidermonkey

* Update JS versions

* Add docs for web v3.13

* Improve ScriptingCore

* Manual merge cocos2d/cocos2d-x#16383 by DavidDeSimone

* Fix auto bindings configurations

* Update web ref
2016-08-19 16:28:47 +08:00
James Chen b135d512d2 Update copyright to 2016. (#16311) 2016-08-05 09:42:15 +08:00
mogemimi a348cbda8b Move StringUtils functions from deprecated header file to ccUTF8.h (#15835)
* Move StringUtils functions outside of deprecated header

* Replace deprecated headers with 'base/ccUTF8.h'
2016-06-15 15:01:26 +08:00
xpol 1e70fb5eb5 Remove include of cocos2d.h (#15435) 2016-04-18 15:09:21 +08:00
Xpol Wan 90456d29ba Fixes 1605 include path in 541 files
using the tools/coding-style/include-linter.py with -f options.
2016-03-20 21:53:44 +08:00
James Chen 7d43e35741 Merge branch 'v3' of git://github.com/cocos2d/cocos2d-x into refactor-websocket 2016-02-17 14:56:32 +08:00
pandamicro 6e7c9ab8db Cleanup log 2016-02-15 17:19:37 +08:00
pandamicro 94c62bed53 Remove ScriptingCore::retainCount 2016-02-15 16:32:00 +08:00
pandamicro cb4d24e1ee Merge pull request #14759 from pandamicro/hbmemory
Implement Full GC Relied memory model
2016-02-14 14:48:01 +08:00
Wenhai Lin 4992037c5c Avoid creating temporary string objects 2016-02-03 23:12:37 +08:00
pandamicro 554523a201 Use JS::Heap instead of Mozilla::maybe to improve stability 2016-01-28 01:03:13 +08:00
pandamicro 93987c7848 Remove PersistentRooted as much as possible and use pure JS references 2016-01-26 19:33:35 +08:00
pandamicro d6cedb88ec Remove JS::Persistent and move js object reference into JS scope 2016-01-24 19:47:26 +08:00
James Chen ed9ed6c92f Don't change the behavior of WebSocket::close method. WebSocket::close is an synchronous method before, adds a WebSocket::closeAsync method for asynchronous closing. 2016-01-22 14:22:33 +08:00
pandamicro fc19435123 Merge branch 'v3' of github.com:pandamicro/cocos2d-x into hbmemory
Conflicts:
	cocos/base/ccConfig.h
	cocos/scripting/js-bindings/manual/ScriptingCore.cpp
	cocos/scripting/js-bindings/manual/ScriptingCore.h
	cocos/scripting/js-bindings/script/jsb_prepare.js
2016-01-18 16:40:00 +08:00
James Chen f9e8ae0f09 WebSocket refactoring, bug fixes, improvements, and passes most Autobahn Test (The most standard WebSocket Protocol Test). 2016-01-13 21:14:38 +08:00
XiaoFeng ab0efd933a Merge branch 'v3.10' of https://github.com/cocos2d/cocos2d-x into v3
Conflicts:
	CHANGELOG
	cocos/scripting/js-bindings/manual/cocos2d_specifics.cpp
	tests/js-tests/src/RenderTextureTest/RenderTextureTest.js
2016-01-09 18:01:56 +08:00
pandamicro acf03c06d5 Fixed WebSocket JSB crash issue 2015-12-23 23:28:14 +08:00
pandamicro 8d712a4c45 Expose CC_ENABLE_GC_FOR_NATIVE_OBJECTS 2015-12-21 00:16:17 +08:00
pandamicro 8ddaf310ef Update manual bindings to use the new memory model 2015-12-21 00:16:16 +08:00
pandamicro 022bcc24f1 Merge branch 'v3.10' of github.com:cocos2d/cocos2d-x into v3
Conflicts:
	cocos/scripting/js-bindings/manual/chipmunk/js_bindings_chipmunk_manual.cpp
	cocos/scripting/js-bindings/manual/component/CCComponentJS.cpp
	cocos/scripting/js-bindings/manual/js_bindings_opengl.cpp
2015-12-20 22:56:33 +08:00
Ricardo Quesada f023d5a378 no more uthash
Instead of using two uthash entires, it uses two unordered_map entries.
Benefits are:

easier to debug. I can inspect the contents of the unorderd_map with the
debugger
less memory. I don't need to allocate two proxies. I only allocate one
proxy and I added it into both maps
If also fixes an important bug when unrooting objects. Unroot was
cleaning the heap object. So now proxy adds a _jsobj, which is a raw
pointer. Needed under certain cases.
2015-12-16 17:37:44 -08:00
Wenhai Lin 66b0a0e9b1 Adds `std::nothrow` to the `new` statements 2015-12-16 17:06:56 +08:00
Ricardo Quesada 43a573f4fd ccvector_to / ccmap_to converted to new API
and more fixes
2015-12-15 17:37:48 -08:00
pandamicro 8320c2f702 Use rooted object for js_proxy new and get 2015-11-27 10:19:13 +08:00
pandamicro ae2b75c8be Fix issues causing by temporary RootedObject passed as function parameters 2015-11-27 01:35:06 +08:00
pandamicro c202834312 Clean up manual bindings code, remove JS_THIS_OBJECT and JS_SET_RVAL 2015-11-25 14:33:43 +08:00
pandamicro 69b2b5720b Use JS::PersistentRooted instead of JS::Heap to prevent delegates and wrappers internal js object from GC
More elegant and secured way, potential crashes exists in previous implementation
2015-11-25 14:32:19 +08:00
pandamicro a170b1caf1 Made SocketIO events correctly fired when compile in release mode
Fixed https://github.com/cocos2d/cocos2d-x/issues/13248

Reason: `ScriptingCore::executeJSFunctionWithThisObj` is somehow broken in release mode.

Solution: Use `JSFunctionWrapper` to manage callbacks instead of managing JS values manually.

I also did the following in this commit:

- Correct the coding style in jsb_socketio.cpp
- Remove android.mk in the Xcode project
2015-08-06 17:20:04 +08:00
pandamicro 1f48beee1e Reorganize code 2015-07-03 12:55:55 +08:00
pandamicro 155b9b918c Add retain/release for XMLHTTPReqest in JSB 2015-07-03 11:01:43 +08:00
zhangbin b4f2d94109 Update js bindings & js tests. 2015-05-05 10:50:19 +08:00