Outparamdel
Pork#Running_outparamdel gives an example of running the tool.
TODO
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
- Need a macro to annotate getters where assigning NULL to the outparam has a special meaning. ie nsresult getterFunc(NOT_NULL(nsISupports **outval))