RESOLVED FIXED 24539
Unresolved CSSMutableStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=24539
Summary Unresolved CSSMutableStyleDeclaration
Norbert Leser
Reported 2009-03-11 19:32:17 PDT
Symbian linker cannot resolve CSSMutableStyleDeclaration class without explicit include of CSSMutableStyleDeclaration.h Proposed solution is to explicitly include the header file. See attached patch.
Attachments
Proposed fix for bug 24539 (989 bytes, patch)
2009-03-11 19:33 PDT, Norbert Leser
darin: review+
Norbert Leser
Comment 1 2009-03-11 19:33:04 PDT
Created attachment 28515 [details] Proposed fix for bug 24539
Mark Rowe (bdash)
Comment 2 2009-03-11 19:39:03 PDT
Why is the forward-declaration of CSSMutableStyleDeclaration not sufficient?
Eric Seidel (no email)
Comment 3 2009-03-26 11:05:39 PDT
Comment on attachment 28515 [details] Proposed fix for bug 24539 This looks fine. Because CSSMutableStyleDeclaration is used in a RefPtr<CSSMutableStyleDeclaration> other ports must require this header too. They're likely only not failing due to RemoveCSSPropertyCommand.halways being included after CSSMutableStyleDeclaration in the same file.
Darin Adler
Comment 4 2009-03-26 12:43:00 PDT
(In reply to comment #3) > This looks fine. Because CSSMutableStyleDeclaration is used in a > RefPtr<CSSMutableStyleDeclaration> other ports must require this header too. > They're likely only not failing due to RemoveCSSPropertyCommand.halways being > included after CSSMutableStyleDeclaration in the same file. Eric, I think that's wrong. Normally a forward declaration is sufficient even if the file does define a RefPtr, as long as the header doesn't contain any code that actually needs to manipulate the RefPtr. Are you sure this is a good change?
David Levin
Comment 5 2009-04-08 16:33:54 PDT
Comment on attachment 28515 [details] Proposed fix for bug 24539 I'm clearing the r+ flag to remove this from the commit queue due to Drain's comment. It is waiting for a comment from Eric before it can be committed and he could add the r+ when he adds a comment.
Eric Seidel (no email)
Comment 6 2009-04-09 01:46:15 PDT
(In reply to comment #4) > Eric, I think that's wrong. Normally a forward declaration is sufficient even > if the file does define a RefPtr, as long as the header doesn't contain any > code that actually needs to manipulate the RefPtr. Are you sure this is a good > change? Again, this is one of those c++ questions where I'm gonna trust your (lengthy) c++ experience over my own... but in this case, I think the instantiation of PassRefPtr<CSSMutableStyleDeclaration> via: 6 static PassRefPtr<RemoveCSSPropertyCommand> create(Document* document, PassRefPtr<CSSMutableStyleDeclaration> style, CSSPropertyID property) 37 { 38 return adoptRef(new RemoveCSSPropertyCommand(document, style, property)); 39 } is going to require actually including CSSMutableStyleDeclaration.h so that PassRefPtr can see that CSSMutableStyleDeclaration actually has a ref() method, no? I'm still confused by why the Symbian build would fail here and no other port would, but I don't see including this header as harmful, if PassRefPtr<CSSMutableStyleDeclaration> instantiation does really require the full class definition.
Darin Adler
Comment 7 2009-04-09 08:38:36 PDT
(In reply to comment #6) Yes, the create function does require the CSSMutableStyleDeclaration class definition. So either that function needs to be moved to the .cpp file and made non-inline, or the include needs to be added.
Norbert Leser
Comment 8 2009-04-14 16:01:49 PDT
(In reply to comment #7) > (In reply to comment #6) > > Yes, the create function does require the CSSMutableStyleDeclaration class > definition. So either that function needs to be moved to the .cpp file and made > non-inline, or the include needs to be added. > I will leave it up to you guys to decide. Either of the proposed solutions seems to work in our (symbian linker) case.
Darin Adler
Comment 9 2009-05-11 16:54:50 PDT
Eric Seidel (no email)
Comment 10 2009-05-20 05:37:49 PDT
I missed a couple files when landing: Committing to http://svn.webkit.org/repository/webkit/trunk ... A LayoutTests/platform/mac/fast/forms/search-styled-expected.checksum A LayoutTests/platform/mac/fast/forms/search-styled-expected.png Committed r43904
Eric Seidel (no email)
Comment 11 2009-05-20 05:38:41 PDT
Note You need to log in before you can comment on or make changes to this bug.