You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Carlos Santana (JIRA)" <ji...@apache.org> on 2013/09/25 15:36:06 UTC

[jira] [Commented] (CB-4905) CordovaJS on Windows8 has memoryleak on exec.js

    [ https://issues.apache.org/jira/browse/CB-4905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13777464#comment-13777464 ] 

Carlos Santana commented on CB-4905:
------------------------------------

Proposed fix is in this pull request:

https://github.com/apache/cordova-js/pull/50
                
> CordovaJS on Windows8 has memoryleak on exec.js
> -----------------------------------------------
>
>                 Key: CB-4905
>                 URL: https://issues.apache.org/jira/browse/CB-4905
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: CordovaJS, FirefoxOS, Windows 8
>    Affects Versions: Master, 3.1.0
>            Reporter: Carlos Santana
>            Assignee: Carlos Santana
>
> This problem might be present in firefoxos but since I don't have a phone to test, if someone wants to donate a phone for me to test I will be happy to debug and test :-)
> Whenever an exec occurs in windows8 cordova.callbacks[callbackId] increases 
> and since the standard functions (callbackSuccess, callbackError) are not run the memory never gets claim back with a delete
> https://github.com/apache/cordova-js/blob/master/lib/windows8/exec.js#L46
>  var callbackId = service + cordova.callbackId++;
>         // console.log("EXEC:" + service + " : " + action);
>         if (typeof success == "function" || typeof fail == "function") {
>             cordova.callbacks[callbackId] = {success:success, fail:fail};
>         }
>         try {
>             proxy(success, fail, args);
>         }
> the function callbackFromNative: function(callbackId, success, status, args, keepCallback)
> its the one to delete the callback reference:
> https://github.com/apache/cordova-js/blob/master/lib/cordova.js#L217
> if (!keepCallback) {
>                 delete cordova.callbacks[callbackId];
>             }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira