>>while working a little bit with the reflection interface I have been 
>>stumbling over the following: "com.sun.star.reflection.XField" is 
>>deprecated in favor of "com.sun.star.reflection.XField2". All signatures 
>>are the same except for set(), where the first argument changed from 
>>[in] to [inout].

XField::set() has been specified wrong:
set() changes the object parameter, e.g. a STRUCT field, thus it has to
be [inout].
For a long time, this bug hasn't been discovered, because when calling
from pure C++, modifying the Any's internal STRUCT works, although it
violates Any's const-ness (passed as Any const&).
But this hurts concerning bridging to different languages: [in]
parameters aren't written back, so the modification gets lost.
Thus use reflection.XField2 to be on the safe side, though XField still
works (except for its set()).

hope this clarifies,
-Daniel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to