Fix min/max needed for ascii to INTERNAL conversion
Commit Message
The values are swapped. Installed as obvious.
Andreas.
* iconv/gconv_builtin.h ("=ascii->INTERNAL"): Correct min/max
needed arguments.
---
iconv/gconv_builtin.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On 03/07/2016 05:48 PM, Andreas Schwab wrote:
> The values are swapped. Installed as obvious.
>
> Andreas.
>
> * iconv/gconv_builtin.h ("=ascii->INTERNAL"): Correct min/max
> needed arguments.
What's the impact? Is it possible to write a test that shows a difference?
(I just want to make sure this is not user-visible and thus does not
need to be tracked in Bugzilla.)
Thanks,
Florian
Florian Weimer <fweimer@redhat.com> writes:
> On 03/07/2016 05:48 PM, Andreas Schwab wrote:
>> The values are swapped. Installed as obvious.
>>
>> Andreas.
>>
>> * iconv/gconv_builtin.h ("=ascii->INTERNAL"): Correct min/max
>> needed arguments.
>
> What's the impact? Is it possible to write a test that shows a difference?
It's not a correctness issue, just efficiency. The max_needed_to value
is used in gconv_open to size the internal buffer between two steps, and
the min_needed_from value has no real relevance (when
__gconv_transform_ascii_internal returns __GCONV_EMPTY_INPUT, it has
already consumed all of the input buffer anyway). The other two values
are never used.
Andreas.
On 03/08/2016 10:19 AM, Andreas Schwab wrote:
> Florian Weimer <fweimer@redhat.com> writes:
>
>> On 03/07/2016 05:48 PM, Andreas Schwab wrote:
>>> The values are swapped. Installed as obvious.
>>>
>>> Andreas.
>>>
>>> * iconv/gconv_builtin.h ("=ascii->INTERNAL"): Correct min/max
>>> needed arguments.
>>
>> What's the impact? Is it possible to write a test that shows a difference?
>
> It's not a correctness issue, just efficiency. The max_needed_to value
> is used in gconv_open to size the internal buffer between two steps, and
> the min_needed_from value has no real relevance (when
> __gconv_transform_ascii_internal returns __GCONV_EMPTY_INPUT, it has
> already consumed all of the input buffer anyway). The other two values
> are never used.
Thank you for your detailed explanation. It answers my question.
Florian
@@ -84,7 +84,7 @@ BUILTIN_ALIAS ("OSF00010020//", "ANSI_X3.4-1968//")
BUILTIN_TRANSFORMATION ("ANSI_X3.4-1968//", "INTERNAL", 1, "=ascii->INTERNAL",
__gconv_transform_ascii_internal, __gconv_btwoc_ascii,
- 4, 4, 1, 1)
+ 1, 1, 4, 4)
BUILTIN_TRANSFORMATION ("INTERNAL", "ANSI_X3.4-1968//", 1, "=INTERNAL->ascii",
__gconv_transform_internal_ascii, NULL, 4, 4, 1, 1)