Summary: | Don't use PassRefPtr variables in the V8 bindings generator | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Anders Carlsson <andersca> | ||||
Component: | New Bugs | Assignee: | Anders Carlsson <andersca> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | sam | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Anders Carlsson
2011-06-18 19:21:35 PDT
The V8 bindings generator will generate local variables of type PassRefPtr<DOMStringList> and then try to assign into them. This will break when https://bugs.webkit.org/show_bug.cgi?id=62940 is landed so I'll try to remove the offending line in CodeGeneratorV8.pm to see what else breaks. The offending line is return "PassRefPtr<DOMStringList>" if $type eq "DOMStringList" and $isParameter; and it was added as part of https://bugs.webkit.org/show_bug.cgi?id=56950 Created attachment 97713 [details]
Patch
Anders, are you waiting for something to mark this for review? It looks fine to me. With this patch, addSpellcheckRangeCallback in V8HTMLTextAreaElement.cpp now looks like: --- V8HTMLTextAreaElement-baseline.cpp 2011-06-20 10:51:22.000000000 -0700 +++ V8HTMLTextAreaElement.cpp 2011-06-20 10:51:49.000000000 -0700 @@ -367,7 +367,7 @@ imp->addSpellcheckRange(start, length); return v8::Handle<v8::Value>(); } - EXCEPTION_BLOCK(PassRefPtr<DOMStringList>, suggestions, v8ValueToWebCoreDOMStringList(args[2])); + EXCEPTION_BLOCK(RefPtr<DOMStringList>, suggestions, v8ValueToWebCoreDOMStringList(args[2])); if (args.Length() <= 3) { imp->addSpellcheckRange(start, length, suggestions); return v8::Handle<v8::Value>(); Comment on attachment 97713 [details]
Patch
+ No new tests. (OOPS!)
^^^ You'll probably want to remove this line from the ChangeLog.
Committed r89261: <http://trac.webkit.org/changeset/89261> |