On 2020-06-15 18:44, Pavel Cisar wrote:
Alex,

Dne 15. 06. 20 v 16:20 Alex Peshkoff via Firebird-devel napsal(a):
On 2020-06-11 19:56, Pavel Cisar wrote:
Adriano,

Dne 11. 06. 20 v 16:38 Adriano dos Santos Fernandes napsal(a):
2. Strange things with iUtil in FB 4.

a) Why methods getDecFloat16, getDecFloat34 and getInt128 require
iStatus parameter? I expected that these methods should be "safe" like
iMaster.getUtilInterface() and thus should not require iStatus.

Methods that appear in non first version of an interface should have the status parameter as even if never return an error, it may be missing on
a previous interface, which is an error. More below.

Hmm, guess that it would make sense to have mandatory iStatus as first parameter in each method (regardless it's use to report errors), in any method added after initial 3.0 release. So there is in fact an error in IDecFloat16/34 interfaces that should be fixed before final, as BCD methods does not have it.


Pay attention - not "each method added after FB3", but "each method that appear in non first version of an interface". I.e. DecFloat16/34 interfaces are OK.

I really don't understand the rationale behind these strange rules. What I see is pure inconsistency as there are methods that have iStatus although they don't need it for anything,

It should be needed but due to limited / incomplete / buggy implementation of pascal generator in cloop appropriate code is missing. It's that missing code that should check versions, normally you need not care about it.

and methods that doesn't have it because they don't need it for anything. Could anyone explain what splitting these by fact it's first version of an interface or upgraded one is good for? It should have really strong technical reason to have such confusing rule. For interface consumer, presence of iStatus was clear indication that method may fail, and absence that it never fails. It was true for FB 3.0. Now it's not true anymore and I'd like understand why.


Because pascal generator in cloop should be fixed.




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to