Outparamdel: Difference between revisions

1,168 bytes added ,  17 January 2008
added general disc
No edit summary
(added general disc)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
[http://blog.mozilla.com/tglek/2007/08/06/outparams-take-2/ Blog entry].
Once FF is using [[exceptions]], <code>nsresult</code> methods become <code>void</code>-returning methods. Thus, methods with an "outparam" (more formally, a pointer-typed argument designated for passing a result out of the called method) will be able to place their result directly in the return value. This will make life easier for programmers and may save a few processor cycles.
 
This page describes the '''outparamdel''' refactoring tool. It hasn't been used yet because it can't really be done before exceptions. (Many getter methods always succeed, so we could technically apply outparamdel without exceptions, but it's risky because it assumes (a) the method will never be changed so that it can fail, and (b) the method isn't implemented in JavaScript. Neither assumption is safe.)
 
See also [http://blog.mozilla.com/tglek/2007/08/06/outparams-take-2/ Blog entry].




Line 11: Line 15:
* Run outparamdel
* Run outparamdel
  ../../pork-barrel/pork-barrel 4 /tmp/list.txt ./outparamdel -od-list /tmp/outparams  > outparams.diff 2> /tmp/outparams.err
  ../../pork-barrel/pork-barrel 4 /tmp/list.txt ./outparamdel -od-list /tmp/outparams  > outparams.diff 2> /tmp/outparams.err
* apply patch and enjoy
  sed 's/.home.tglek.work.actionmonkey.//' /tmp/outparams.diff |patch -p0
* outparamdel produces various diagnostics during processing, those can be grep + seded to produce something like egrep -v 'ParseCFHTML|GetHostName|GetChildNodes|GetNextSibling|GetOffsetParent|GetParentNode|GetPreviousSibling' and used in the above xargs pipeline
==TODO==
==TODO==
===Manual Mozilla changes===
===Manual Mozilla changes===
313

edits