>>     Btw, i see no problem curently. Alex made change but it is not means it 
>> can't be undone if 
>> necessary.
>> 
> Ah, that's it. Every change I do, specially from you come this discurse
> of where the thing was discussed.
> 
> But for others, no. It's just a commit that can be undone.

    This is just not true. And i'm not going to waste my time to argue about 
this.

> BTW what about if I just came to whole plugin thing and just removed the
> reference counters because it was obviously wrong? Is it just a piece of
> code that was write to be undone? (at least it appears to be till now,
> cause the implementation is currently broken)

    If you'll remove something then there are two choices always :
a) it will be accepted by team
b) it will not be accepted by team
in the case (b) someone will undo this removal.
 
> And "MessageBuffer" was discussed here in this list and you had all your
> time to comment on it.

    I look at (not mine) code when i have time and need to look at it. If you 
think that i looking
with microscope at every your change just to find a way to undo it - you are 
terrible wrong. 
I have more important things to do, believe me ;)

>>> This change puts a very number of extra virtual call for each (from each
>>> layer) method called. Considering the methods involved are ones that are
>>> heavily called, this is going to make a vary large overhead.
>> 
>>     Could you point me - where do you see the large overhead ? Probably i 
>> missed some loop with 
>> hundreds calls of this methods ? Or it is just a few calls per whole API 
>> call ?
>> 
> To retrieve records, to insert records. Records * 4 *unnecessary*
> virtual calls at least.

a) all methods have no parameters so there is no stack allocation
b) 4 virtual calls per few thousands another instructions not looks as killer 
overhead

>>     I see no problem to revert this change in favor of "struct", but i'm 
>> against "class" in public API.
>> Public API should use "struct" (as it have no methods) and pure virtual 
>> classes (as it have no data
>> and no methods implemented). Else at some day someone will add methods into 
>> your POD "class
>> Message" and ruin our public API.
>> 
> If you understand C++ well you would understand that for C++ usage (this
> is a C++ header, after all) inline non-virtual methods and constructors
> would not make any damage to our interfaces.

    When you start to port this C++ header into another language, you will 
understand what i wrote.

Regards,
Vlad

PS Alex will explain you why "struct" or "class with data members" is bad for 
*portable* code.

------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to