Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[#1049] Fix gtm_jlong_t return type handling on 32-bit armv6l (regres…
…sion in 9f916f6) Background ---------- * The `java/callouts` subtest failed on armv6l with the following diff. ```diff 7a8,67 > 16c16 > < Job returned -336177440569076945 > --- > > Job returned -1277316960 . . ``` Issue ----- * Before 9f916f6, on 32-bit armv6l, a `ydb_jlong` type return value was handled in `sr_unix/op_fnfgncal.c` by converting the 8-byte contents of the pointer to the return value. This was done whether `starred` was TRUE or not. That is, the handling was the same for `gtm_jlong_t` and `gtm_jlong_t *`. * But after 9f916f6, on 32-bit armv6l, a `ydb_jlong` type return value was handled differently for `gtm_jlong_t` and `gtm_jlong_t *`. Just like it was done on 64-bit systems. While the different handling is correct and needed for 64-bit systems, it is incorrect for 32-bit systems. Fix --- * The fix is to restore the same handling for `gtm_jlong_t` and `gtm_jlong_t *` for 32-bit systems. That is, there should be no `if (starred)` logic in the `#ifndef GTM64` case for `case ydb_jlong:` in `sr_unix/op_fnfgncal.c` like is there for the `#ifdef GTM64` case..
- Loading branch information