Confirmed users
381
edits
mNo edit summary |
No edit summary |
||
| Line 35: | Line 35: | ||
<pre> | <pre> | ||
sed 's/.home.tglek.work.actionmonkey.//' /tmp/nsgenerichtmlelement.diff |filterdiff -x xpcom/glue/nsCOMPtr.h -x xpcom/glue/nsIWeakReferenceUtils.h -x xpcom/glue/nsThreadUtils.h -x xpcom/threads/nsThread.h -x /\* |patch -p0 --dry-run</pre> | sed 's/.home.tglek.work.actionmonkey.//' /tmp/nsgenerichtmlelement.diff |filterdiff -x xpcom/glue/nsCOMPtr.h -x xpcom/glue/nsIWeakReferenceUtils.h -x xpcom/glue/nsThreadUtils.h -x xpcom/threads/nsThread.h -x /\* |patch -p0 --dry-run</pre> | ||
Functions that take COMPtr& parameters make life difficult(especially if those are templated). | |||
Given <pre>template<class T> void getter(nsCOMPtr<T>& ptr) </pre> | |||
rewrite it to <pre>template<class T> void getter(T*& ptr) </pre> | |||
Then rewrite code in the function as usual. | |||
However callers now turn into 2 cases. | |||
a) Being called with a stack variable -> change code as usual | |||
b) Called with a heap var -> wrap with getter_AddRefs (This way write barrier will be triggered). | |||