Summary: | [EFL] [WK2] regression(r122411) Crashes in Ewk_View | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Sudarsana Nagineni (babu) <naginenis> | ||||||
Component: | WebKit EFL | Assignee: | Chris Dumez <cdumez> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | cdumez, gustavo, gyuyoung.kim, haraken, kenneth, lucas.de.marchi, tmpsantos, tonikitoo, webkit.review.bot | ||||||
Priority: | P2 | ||||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Sudarsana Nagineni (babu)
2012-07-12 03:19:02 PDT
I cannot reproduce in release. I'll try a debug build. This happens in debug mode only because CHECK_HASHTABLE_ITERATORS flag is turned on. For some reason, the m_mutex property of the WTF::HashTable is null, which seems impossible since it is properly initialized in the HashTable constructor. This happens when requesting the begin() iterator of an empty HashTable. Created attachment 151912 [details]
Patch
Turns out this was caused by calloc() overwriting with zeros structure members that are not pointers (e.g. HashMap members). This patch removes usage of calloc() and uses the new operator instead since it is too bug prone when extending structures.
LGTM. Thanks for fixing the crash. LGTM. The difference between calloc and new is basically that [c|m]alloc doesn't call the constructor. Created attachment 151927 [details]
Patch
Use constructors instead of post initialization, as advised by Haraken.
Comment on attachment 151927 [details]
Patch
LGTM
Comment on attachment 151927 [details] Patch Clearing flags on attachment: 151927 Committed r122452: <http://trac.webkit.org/changeset/122452> All reviewed patches have been landed. Closing bug. |