Commit Graph

9 Commits

Author SHA1 Message Date
Ben Davies
4bf7f5ce1a Typescript: remove @class/@extends/@property declarations (#3777) 2017-07-14 05:11:20 +09:00
Ben Davies
c42c40e40b Typescript: process-manager.js, verifier.js (#3717) 2017-07-07 15:16:20 +09:00
Ben Davies
37fec4568b Process Manager: fix memory leak in ProcessManager#unspawn (#3732)
Doesn't break hotpatching anything related to battles this time!

ProcessWrapper was holding on to references to ProcessManager after its
process had been killed and it had been removed from ProcessManager's
list of processes, keeping it on the heap. Not good. This removes all
references to the wrapper's manager when disconnecting its process,
allowing it to be GCed.
2017-07-06 15:33:24 +09:00
Guangcong Luo
95e8bebeaf Revert "ProcessManager: refactor, fix memory leak, use Typescript (#3706)"
This reverts commit c9b93d3529.
2017-07-02 08:11:18 -04:00
Ben Davies
c9b93d3529 ProcessManager: refactor, fix memory leak, use Typescript (#3706)
- spawning and setting up child processes is now handled by
ProcessManager#constructor rather than needing to be done manually for
each module that uses ProcessManager
- direct references to ProcessManager in ProcessWrapper were removed to
prevent dead ProcessWrapper instances from being leaked when hotpatching
- process-manager.js and verifier.js now use Typescript
2017-06-30 09:09:13 +09:00
Ben Davies
54d0ff203a Performance: replace direct references to arguments with rest parametres (#2818)
Replacing direct references to the arguments object of functions with rest
parametres prevents the function from being deoptimized while still allowing
use of arbitrary arguments. This may also fix some minor memory leaks related
to mishandling the arguments object.
2016-10-04 16:29:14 -07:00
Ben Davies
d9c6fe54b2 ProcessManager: subclass to extend ProcessManager, unit tests setup (#2739)
Before, an options object containing properties and values to be used
was how decorated instances of the class would be created. This meant
the constructor could assign anything you feel like to `this`. Rather
than that, the constructor now assigns a strict set of values, and
methods are redefined in subclasses.

Basic unit tests were added to test if they could be written for after
the final refactor to fix the other memory leak here.
2016-09-09 15:51:49 -05:00
Ben Davies
a51c30af3c Fix memory leak in ProcessManager#prototype#send (#2738)
This method would leak its arguments object before. The changes here saved
~30KB of memory from being leaked when running /itemsearch atk, for example.
2016-09-08 02:59:08 -05:00
Ivo Julca
ce1fd87efd Split process manager class to its own file 2016-03-23 02:44:20 -05:00