Outparamdel: Difference between revisions

no edit summary
(New page: [http://blog.mozilla.com/tglek/2007/08/06/outparams-take-2/ Blog entry]. Pork#Running_outparamdel gives an example of running the tool. TODO: * Convert NS_ERROR errors to constants ...)
 
No edit summary
Line 4: Line 4:
[[Pork#Running_outparamdel]] gives an example of running the tool.
[[Pork#Running_outparamdel]] gives an example of running the tool.


TODO:
==TODO==
* Convert NS_ERROR errors to constants  
===Manual Mozilla changes===
* Convert NS_ERROR errors to constants
 
===Automatically Detect Outparam Candidates (dehydra_scripts/outparams.js)===
* Process function body ensuring that only errors codes can be returned. NS_OK + some error
* Then check the class hierarchy if this is the only implementation of the method
* Use class hierarchy to start rewriting at the oldest virtual method that target method overloads
* Ensure that the virtual method isn't originally defined by XPIDL
* Ensure that all overloads of this method will be rewritten (can't change return value otherwise)
===Near Future===
* Write an optimizer for ?: caller rewrites
* Write an optimizer for ?: caller rewrites
* Need a macro to annotate getters where assigning NULL to the outparam has a special meaning. ie nsresult getterFunc(NOT_NULL(nsISupports **outval))
* Need a macro to annotate getters where assigning NULL to the outparam has a special meaning. ie nsresult getterFunc(NOT_NULL(nsISupports **outval))
Confirmed users
381

edits