Plugin scans all methods in the translation unit,
visits methods with reportMemoryUsage name and
collects all the reported class members into instrumentedMembers vector.
Actually it visits all call expressions inside reportMemoryUsage method
and only if the method name of call expression matches with predefined set of
instrumentation methods, addMember, addRawPointer etc. then it scans all
the arguments of the call expression. It expects that argument has type MemberExpr but for
the mutable members the type of the expression is ImplicitCastExpr because it
needs to be converted into const T& where T is a template argument of addMember method.
Created attachment 180930 [details]
Committed r138563: <http://trac.webkit.org/changeset/138563>