Outparamdel

Revision as of 18:28, 23 November 2007 by Tglek (talk | contribs)

Blog entry.


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))