Commit Graph

72 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
James Chen 7a65363208 Changes JS version to 3.16. (#18210) 2017-09-06 09:10:14 +08:00
pandamicro 4fe75a99b5 Update engine version (#17624) 2017-03-31 16:09:20 +08:00
pandamicro 75383bdcde Jsb improvements (#17513)
* Cleanup ScriptingCore code

* Add jsb.ENABLE_GC_FOR_NATIVE_OBJECTS to indicate the memory model

* Use incremental GC

* Improve ScriptingCore::executeFunctionWithOwner performance

* Support ScriptingCore::executeGlobalFunction

* Reuse js objects for get_or_create_weak_jsobject reduce memory usage

* Fix sequence / spawn js object lost issue

* Improve wrappers with cppOwner system
2017-03-16 09:42:16 +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
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
mogemimi 75d2e76095 Fix minor typos in comments and docs (#17294) 2017-02-07 09:41:52 +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
pandamicro 5823f5792b Synchronize creator engine bug fixes and upgrade web engine (#17003)
* 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
2016-12-14 09:27:47 +08:00
David DeSimone 9204c87cfc Adding performance.now() to cocos2d-js. (#16766)
* Adding performance.now() to cocos2d-js. See https://developer.mozilla.org/en-US/docs/Web/API/Performance/now

* Fixing improper logic for converting from microseconds, to milliseconds with micro-precision

* Adding performance.now tests
2016-11-04 11:58:48 +08:00
mogemimi 91cdb3394b Suppress warning C4101 on MSVC (#16573) 2016-09-14 10:49:14 -07: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
minggo 734d857ced Merge branch 'v3.12' into merge-v312 2016-07-07 15:13:21 +08:00
pandamicro ccb30cefc7 Update JS versions 2016-07-06 17:02:53 +08:00
mogemimi 2443e09d29 Fix typos and other mistakes in docs 2016-07-04 00:42:10 +09:00
James Chen 67dd4b0684 JSScript* may be garbage collected before the next time execute the same JS file.
It will crash in JS_ExecuteScript.
2016-06-22 16:18:20 +08:00
mogemimi 38fd8ebca9 Fix typo in function name: Keybard -> Keyboard 2016-05-24 10:14:36 +09:00
minggo 74af3b5232 merge v3.11 back to v3 2016-05-12 09:50:03 +08:00
pandamicro d0fc3ec4c4 Add cc.game.end to close game window 2016-05-07 14:37:36 +08:00
xpol 1e70fb5eb5 Remove include of cocos2d.h (#15435) 2016-04-18 15:09:21 +08:00
pandamicro bb2cfc7308 Update engine version 2016-04-11 11:11:17 +08:00
pandamicro e6d4beef8a Merge pull request #15388 from pandamicro/v3
Issue fixes and update engine version
2016-04-07 23:15:39 +08:00
pandamicro 817f4f4871 Update engine version 2016-04-07 22:36:29 +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
dongtao.han 7955721cb9 exported api. 2016-02-25 09:46:34 +08:00
pandamicro 94c62bed53 Remove ScriptingCore::retainCount 2016-02-15 16:32:00 +08:00
pandamicro 72be9a3966 Fix other issues 2016-02-02 23:39:18 +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
mogemimi 41dd44c75d Fix some typos in docs 2016-01-11 19:23:05 +09:00
Ricardo Quesada 7cd80cb669 Adds iOS tests, calls GC after replacing scene
and some bug fixes

Squashed commit of the following:

commit 36b74ce4e68bf2f4a4c464453e695497716506eb
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 22 19:07:01 2015 -0800

    adds missing file

commit 017d03807122faa38fefaa8f4554db8edc83561d
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 22 19:02:27 2015 -0800

    disables GC by default

commit a2f3767a952e052eb8f0391bb5cbd1a8d0ce1b38
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 22 18:57:14 2015 -0800

    Adds iOS test and calls GC after replacing the scene

commit 7b3b628caeb3366356d9a896aebd9c96887a85ed
Merge: 79e926a e311655
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 22 15:29:01 2015 -0800

    Merge branch 'v3' into v3_js_memory_test_and_fixes

commit 79e926a970e3153ee826b299c3417fb6ac599153
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Mon Dec 21 21:27:19 2015 -0800

    fixes crashes

commit 76f3910748e15c4ea179eab846f24f3e65d52d2d
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Mon Dec 21 11:57:56 2015 -0800

    Adds standalone test for JS GC memory

    and fixes leaks on extended/subclassed objects
2015-12-29 17:36:02 -08:00
pandamicro 616f5c0a01 Correct return type to adopt GC Rooting API 2015-12-21 11:07:40 +08:00
pandamicro e1bc6640f4 Implement full GC relied memory model 2015-12-21 00:14:51 +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
Ricardo Quesada 43a573f4fd ccvector_to / ccmap_to converted to new API
and more fixes
2015-12-15 17:37:48 -08:00
pandamicro 280a8e9d9c Merge pull request #14663 from xiaofeng11/v3.10
Update all version number to v3.10
2015-12-15 10:48:51 +08:00
pandamicro 0e7a02d025 Merge pull request #14670 from pandamicro/v3
Fix evalString doesn't return result issue
2015-12-14 17:26:34 +08:00
pandamicro 662c7fbec5 Made API consistent with old version 2015-12-14 13:55:17 +08:00
pandamicro cbce4d37c3 Merge pull request #14671 from ricardoquesada/more_js_fixes
More js fixes
2015-12-14 13:41:59 +08:00
pandamicro 330b588215 Fix evalString doesn't return result issue 2015-12-14 13:13:54 +08:00
XiaoFeng 4815ec8b9a Update version number to v3.10 2015-12-14 10:32:29 +08:00
pandamicro 445442c964 Upgrade spider monkey to solve win32 js project crash issue 2015-12-14 10:27:11 +08:00
Ricardo Quesada 47911e0c24 more js fixes
fixes in how ref count is measured
opengl bindings converted to new API
2015-12-11 15:18:09 -08:00
Ricardo Quesada 8b2dfb1a4b Mooooores fixes
but GC memory model doesn't work yet... somewhere someone is still
retaining a reference that prevents the whole thing from
releasing
2015-12-10 22:15:44 -08:00
Ricardo Quesada 96d391ea30 Squashed commit of the following:
commit aff4e27200a77db60b13ea30c2457558e5f53059
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Thu Dec 10 17:58:41 2015 -0800

    compiles with new GC model

commit 1fa69cd71231d56371cd45a378e50a1888308b42
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Thu Dec 10 17:41:15 2015 -0800

    Animation3D works Ok

commit d439969caf7e6fe83a74e37d078c4361a08cb816
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Thu Dec 10 13:39:50 2015 -0800

    Sprite3d create: converted to new API

commit aabe449e4a968fad882c44df9be787eb7c3bfcec
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Thu Dec 10 13:27:33 2015 -0800

    ouch...

commit 688ab610a8cb7607bc3c51b8ca01d800ef3c9794
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Thu Dec 10 13:12:25 2015 -0800

    Spawn/Sequence init* were not bound

    Fixed. Now JS Scheduler Test works Ok
2015-12-10 18:02:55 -08:00
Ricardo Quesada 13dc967b03 js_get_or_create_jsobject() and other stuff
- getDescendatns() converted
- singletons converted
- new helper template-specialized js_get_or_create_jsobject()

Squashed commit of the following:

commit 3f21e65bca5f7e5e5c4bf304f2daed0eff26f6aa
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Mon Dec 7 19:04:24 2015 -0800

    logging added (and commented)

    will be useful in the future

commit f995295b385a515c1f82136688610a90eb379855
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Mon Dec 7 19:00:09 2015 -0800

    new js_get_or_create_jsobject<T>

    Specializes Template on cocos2d::Ref.
    When Ref, it calls the `jsb_ref` functions

commit 240b80e4080757ebb47db0d02a1fe1f875237d24
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Mon Dec 7 13:31:52 2015 -0800

    singletons converted

commit 667d94bf90267c103b620630bacfffa7767b42dd
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Mon Dec 7 12:20:07 2015 -0800

    getDescendants() converted
2015-12-07 19:05:23 -08:00
Ricardo Quesada cd8631ef09 sfunction "create" uses new optimized code
...although this code should never be called
2015-12-04 18:42:31 -08:00
Ricardo Quesada 67948ff8c8 adds jsb_ref_get_or_create_jsobject()
kind of replaces js_get_or_create_jsobject for Ref objets.
Benefits: friendly with the new JS API
takes less space (no template)
2015-12-03 15:40:52 -08:00
Ricardo Quesada c321d35a9a Squashed commit of the following:
commit 000a025fb4027c26bf05f7296e2d1fbbf21abe6c
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Wed Dec 2 10:38:27 2015 -0800

    updated submodule

commit b5f45a62b48493f05d75aea865158c371241973d
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 1 19:21:34 2015 -0800

    ooops... thanks Panda

commit 85f0b9c01d5281970f748b6460107bc0ca82cdf0
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 1 18:19:16 2015 -0800

    better macro name for GC. Thanks panda

commit e42ad74a664dd2b85cbf4463a6fef8f6abc06664
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 1 17:10:32 2015 -0800

    RepeatForever, Repeat and Speed converted

commit 3a8130ffc06301c91c836539736bbae456f05b4d
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 1 14:31:32 2015 -0800

    cherry-picking changes to disable retain/release from GC

commit 3ed6e00dc2d9d46248d9374a1f9874cd0b2ba67d
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 1 12:31:04 2015 -0800

    fixes autorelease issues on rebind

commit b65f5f6b16c1542c28b04d66377a27233c6cf214
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Dec 1 12:23:33 2015 -0800

    my JS changes... again
2015-12-02 14:45:13 -08:00