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