Export missing symbols from Web*Layer
Created attachment 111673 [details] Patch
Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.
Comment on attachment 111673 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=111673&action=review > Source/WebKit/chromium/public/WebContentLayer.h:38 > +class WEBKIT_EXPORT WebContentLayer : public WebLayer { we don't normally export entire classes. see other header files. we just export the non-inline methods (ignore pure virtual methods of course).
(In reply to comment #3) > (From update of attachment 111673 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=111673&action=review > > > Source/WebKit/chromium/public/WebContentLayer.h:38 > > +class WEBKIT_EXPORT WebContentLayer : public WebLayer { > > we don't normally export entire classes. see other header files. we just export the non-inline methods (ignore pure virtual methods of course). That was necessary, otherwise I was getting undefined symbols for the vtable - it's defined with the first virtual method definition (in this case the destructor, inside of the .so), but is needed in the constructor (inlined in the calling code). If we're adamant on that, we could try inlining the virtual destructor, or un-inlining the constructors and moving them into the .cpp. I'll see if either one works.
(In reply to comment #4) ... > That was necessary, otherwise I was getting undefined symbols for the vtable - it's defined with the first virtual method definition (in this case the destructor, inside of the .so), but is needed in the constructor (inlined in the calling code). > If we're adamant on that, we could try inlining the virtual destructor, or un-inlining the constructors and moving them into the .cpp. I'll see if either one works. We haven't had to export classes before. Something must be unconventional here that can be avoided.
(In reply to comment #5) > (In reply to comment #4) > ... > > That was necessary, otherwise I was getting undefined symbols for the vtable - it's defined with the first virtual method definition (in this case the destructor, inside of the .so), but is needed in the constructor (inlined in the calling code). > > If we're adamant on that, we could try inlining the virtual destructor, or un-inlining the constructors and moving them into the .cpp. I'll see if either one works. > > We haven't had to export classes before. Something must be unconventional here that can be avoided. perhaps you should inline the WebLayer destructor. that would probably do the trick. we normally do not export constructors and destructors.
Created attachment 111839 [details] Patch
New patch does that.
Comment on attachment 111839 [details] Patch Clearing flags on attachment: 111839 Committed r98035: <http://trac.webkit.org/changeset/98035>
All reviewed patches have been landed. Closing bug.