On Aug 25, 2011, at 6:09 PM, Lionel Elie Mamane wrote:
> On Tue, Aug 23, 2011 at 07:37:06PM +0200, Stephan Bergmann wrote:
>> On Aug 23, 2011, at 5:00 PM, Lionel Elie Mamane wrote:
>>> (...) I don't know what to do with queryInterface; since it is not
>>> virtual, I cannot override it in OPropertySetHelper2. The best I
>>> could come up with is something like (in
>>> OPropertySetHelper):
> 
>> queryInterface *is* virtual (inherited from
>> com::sun::star::uno::XInterface),
> 
> Ah yes, I was looking only at the class definition, and I forgot it is
> inherited from the purely abstract interface class anyway...
> 
> So, that is solved cleanly.

A number of comments on the patch:

- You might or might not want to place OPropertySetHelper2 into a .hxx (and 
.cxx) file of its own, or keep it in propshlp.hxx.  Both solutions have pros 
and cons.

- It is good style to mark those ctors of OPropertySetHelper2 that can be 
called with one argument as "explicit" (even if this has not been done for 
OPropertySetHelper).

- You might want to combine the three ctors of OPropertySetHelper2 into a 
single one, with i_pFireEvents defaulting to null and 
bIgnoreRuntimeExceptionsWhileFiring defaulting to false.

- For DRY-nes, I would try to avoid copying the documentation (including the 
typographical and grammatical errors) of the OPropertySetHelper ctor parameters 
for the OPropertySetHelper2 ctors.

- The OPropertySetHelper2 ctor(s) should not be inline.  (See how eventually 
making use of OPropertySetHelper::m_pReserved would not have worked if 
OPropertySetHelper's ctors had been inline.)

- There is no reason for OPropertySetHelper2 to have a non-virtual dtor.  (And 
thus no reason to disable warnings.)

- The OPropertySetHelper::queryInterface symbol must not be removed from 
gcc3.map.

- For the question of which symbols for OPropertySetHelper2 to list in the 
various map files, see 
<http://udk.openoffice.org/common/man/apicppclasses.html> (you probably need 
access to builds on the various platforms to find out the correct mangled 
names).

> Now, I face the .map files; there, I'd appreciate some help; I think
> I've reverse-engineered enough of the GCC one to get a correct one (at
> least, I could do a modicum of testing with GCC), but:
> 
> 1) Someone that knows better than me should check.
> 
> 2) for MSVC, I'm rather more disarmed; made some incomplete guesses.
> 
> You'll notice I remove:
> 
> ?queryInterface@OPropertySetHelper@cppu@@W3AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z;
> ?queryInterface@OPropertySetHelper@cppu@@W7AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z;
> 
> That's because those *look* like they are rests from a different
> calling convention or something like that, since all other
> queryInterface member functions (of the other classes) have only the
> @UAA version insted of @W3AA and @W7AA. We shouldn't commit that hunk
> until we confirm this is true :) (And it should be in a different git
> commit than the rest anyway).

When you have access to a Windows box with MS compiler, run those symbols 
through undname.exe to see what exactly they represent (and I doubt they are 
debris that can be removed).

> It also seems to me that the msvc_win32_x86_64.map is out of sync: it
> has no UDK_3.7, nor UDK_3.8 section; this looks highly suspicious. If
> someone is willing to take a look at it and fix it?

Indeed looks unmaintained.

-Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to