Classes that support memory usage reporting should provide void reportMemoryUsage(MemoryObjectInfo*) const; method. If such method is present we should invoke it to collect memory usage data, otherwise we should just count sizeof the class. The method detection can be automated at compile time using using template trick called SFINAE(http://en.wikipedia.org/wiki/Substitution_failure_is_not_an_error).
Created attachment 164114 [details] Patch to run on test bots, not for revew
Attachment 164114 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WTF/wtf/MemoryInstrumentation.h']" exit_code: 1 Source/WTF/wtf/MemoryInstrumentation.h:54: The parameter name "object" adds no information, so it should be removed. [readability/parameter_name] [5] Source/WTF/wtf/MemoryInstrumentation.h:54: The parameter name "memoryObjectInfo" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 2 in 1 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 164170 [details] Patch
Comment on attachment 164170 [details] Patch Attachment 164170 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/13859240
Created attachment 164202 [details] Patch
Comment on attachment 164202 [details] Patch Attachment 164202 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/13854532
Comment on attachment 164202 [details] Patch Attachment 164202 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/13850644
Comment on attachment 164202 [details] Patch Attachment 164202 [details] did not pass qt-ews (qt): Output: http://queues.webkit.org/results/13844784
Comment on attachment 164202 [details] Patch Attachment 164202 [details] did not pass efl-ews (efl): Output: http://queues.webkit.org/results/13858310
Comment on attachment 164202 [details] Patch Attachment 164202 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/13854540
Created attachment 164209 [details] ups. Another patch for try bots with static keyword.
Comment on attachment 164209 [details] ups. Another patch for try bots with static keyword. Attachment 164209 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/13845713
Created attachment 164281 [details] The patch for windows try bot. I can't reproduce the problem locally.
Created attachment 164282 [details] The patch for windows try bot. I can't reproduce the problem locally. Unused parameter was removed.
Comment on attachment 164282 [details] The patch for windows try bot. I can't reproduce the problem locally. Unused parameter was removed. View in context: https://bugs.webkit.org/attachment.cgi?id=164282&action=review > Source/WTF/wtf/MemoryInstrumentation.h:95 > + countNotInstrumentedObject(object, memoryObjectInfo); MemoryObjectInfo could be moved above MemoryInstrumentation in this header, then this method could be inlined.
Created attachment 164350 [details] comment addressed
Comment on attachment 164350 [details] comment addressed View in context: https://bugs.webkit.org/attachment.cgi?id=164350&action=review > Source/WTF/ChangeLog:8 > + Implemeted automatic selector of the memory reporting method. If typo: Implemented > Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:294 > +TEST(MemoryInstrumentationTest, detectReportMemoryUsageMethod) This test should either test both memory usage reporting methods or have a different name that implies only the capability of addMember() to reportMemoryUsage() (but not reportObjectInfo()) is tested.
Committed r128732: <http://trac.webkit.org/changeset/128732>