On 04/07/14 13:41, Dimitry Sibiryakov wrote:
> 07.04.2014 9:43, Alex Peshkoff wrote:
>> 2 questions.
>> 1. Where from did you get an estimation that 3 is enough?
>> +    static const int MAX_UNDO_RECORDS=3;
>     Vlad's observation in this thread showed that with current code 2 is 
> enough. I used 3
> because I'm trying to rework VIO_verb_cleanup() to fix orphan index 
> nodes/blobs. New
> approach will need max 3 simultaneously active undo record buffers.
>
>> 2. I see later in the code that in worst case MAX_UNDO_RECORDS may be
>> overflowed, causing bugcheck.
>     Do you mean fb_assert(false)? It is just a trap for bugs in calling code. 
> In release
> build it is no-op and the routine will fallback to dynamic buffers causing 
> bigger memory
> consumption but without other negative effects.

In that case I agree.

>> Why not use HALF_STATIC_ARRAY here to avoid it?
>     I was told that this piece of code is time-critical. Half static array 
> adds unnecessary
> overhead. Besides, it will let bugs in calling code to live unspotted.
>

HalfStaticArray has no overhead as long as it works with statically 
allocated memory.
But does not matter - as long as >3 elements is potential bug there is 
really no need in it.


------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees_APR
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to