From 0937645101948542e6d0936546e9ca048847c24b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 17 Dec 1998 12:10:58 +0000 Subject: Update. * iconvdata/iso646.c (gconv_init): Return correct error value if we run out of memory. * iconvdata/iso-2022-jp.c: Likewise. --- iconvdata/iso-2022-jp.c | 52 ++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 24 deletions(-) (limited to 'iconvdata/iso-2022-jp.c') diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c index e888d310b7..36465ccd45 100644 --- a/iconvdata/iso-2022-jp.c +++ b/iconvdata/iso-2022-jp.c @@ -132,34 +132,38 @@ gconv_init (struct gconv_step *step) } result = GCONV_NOCONV; - if (dir != illegal_dir - && ((new_data - = (struct iso2022jp_data *) malloc (sizeof (struct iso2022jp_data))) - != NULL)) + if (dir != illegal_dir) { - new_data->dir = dir; - new_data->var = var; - step->data = new_data; + new_data + = (struct iso2022jp_data *) malloc (sizeof (struct iso2022jp_data)); - if (dir == from_iso2022jp) + result = GCONV_NOMEM; + if (new_data != NULL) { - step->min_needed_from = MIN_NEEDED_FROM; - step->max_needed_from = MAX_NEEDED_FROM; - step->min_needed_to = MIN_NEEDED_TO; - step->max_needed_to = MIN_NEEDED_TO; + new_data->dir = dir; + new_data->var = var; + step->data = new_data; + + if (dir == from_iso2022jp) + { + step->min_needed_from = MIN_NEEDED_FROM; + step->max_needed_from = MAX_NEEDED_FROM; + step->min_needed_to = MIN_NEEDED_TO; + step->max_needed_to = MIN_NEEDED_TO; + } + else + { + step->min_needed_from = MIN_NEEDED_TO; + step->max_needed_from = MAX_NEEDED_TO; + step->min_needed_to = MIN_NEEDED_FROM; + step->max_needed_to = MIN_NEEDED_FROM + 2; + } + + /* Yes, this is a stateful encoding. */ + step->stateful = 1; + + result = GCONV_OK; } - else - { - step->min_needed_from = MIN_NEEDED_TO; - step->max_needed_from = MAX_NEEDED_TO; - step->min_needed_to = MIN_NEEDED_FROM; - step->max_needed_to = MIN_NEEDED_FROM + 2; - } - - /* Yes, this is a stateful encoding. */ - step->stateful = 1; - - result = GCONV_OK; } return result; -- cgit v1.2.3