From 5031df4af91bfcaeac7c55e7086774804eb0056b Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Thu, 22 Jun 2023 11:44:41 +0100 Subject: [PATCH] Dead code removal --- ...b_accessor_class_gds_not_present_bitmap.cc | 273 ++++++++++++++++++ src/grib_accessor_class_codeflag.cc | 8 +- ...ib_accessor_class_data_g22order_packing.cc | 2 +- src/grib_accessor_class_gds_is_present.cc | 21 +- ...b_accessor_class_gds_not_present_bitmap.cc | 85 +----- src/grib_accessor_class_long.cc | 11 +- 6 files changed, 306 insertions(+), 94 deletions(-) create mode 100644 src/deprecated/grib_accessor_class_gds_not_present_bitmap.cc diff --git a/src/deprecated/grib_accessor_class_gds_not_present_bitmap.cc b/src/deprecated/grib_accessor_class_gds_not_present_bitmap.cc new file mode 100644 index 000000000..068c31138 --- /dev/null +++ b/src/deprecated/grib_accessor_class_gds_not_present_bitmap.cc @@ -0,0 +1,273 @@ +/* + * (C) Copyright 2005- ECMWF. + * + * This software is licensed under the terms of the Apache Licence Version 2.0 + * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. + * + * In applying this licence, ECMWF does not waive the privileges and immunities granted to it by + * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. + */ + +/****************************** + * Enrico Fucile + *****************************/ + +#include "grib_api_internal.h" + +/* + This is used by make_class.pl + + START_CLASS_DEF + CLASS = accessor + SUPER = grib_accessor_class_gen + IMPLEMENTS = init + IMPLEMENTS = unpack_double + IMPLEMENTS = pack_double + IMPLEMENTS = value_count + MEMBERS=const char* missing_value + MEMBERS=const char* number_of_values + MEMBERS=const char* number_of_points + MEMBERS=const char* latitude_of_first_point + MEMBERS=const char* ni + + END_CLASS_DEF + */ + +/* START_CLASS_IMP */ + +/* + +Don't edit anything between START_CLASS_IMP and END_CLASS_IMP +Instead edit values between START_CLASS_DEF and END_CLASS_DEF +or edit "accessor.class" and rerun ./make_class.pl + +*/ + +static int pack_double(grib_accessor*, const double* val, size_t* len); +static int unpack_double(grib_accessor*, double* val, size_t* len); +static int value_count(grib_accessor*, long*); +static void init(grib_accessor*, const long, grib_arguments*); +//static void init_class(grib_accessor_class*); + +typedef struct grib_accessor_gds_not_present_bitmap +{ + grib_accessor att; + /* Members defined in gen */ + /* Members defined in gds_not_present_bitmap */ + const char* missing_value; + const char* number_of_values; + const char* number_of_points; + const char* latitude_of_first_point; + const char* ni; +} grib_accessor_gds_not_present_bitmap; + +extern grib_accessor_class* grib_accessor_class_gen; + +static grib_accessor_class _grib_accessor_class_gds_not_present_bitmap = { + &grib_accessor_class_gen, /* super */ + "gds_not_present_bitmap", /* name */ + sizeof(grib_accessor_gds_not_present_bitmap), /* size */ + 0, /* inited */ + 0, /* init_class */ + &init, /* init */ + 0, /* post_init */ + 0, /* destroy */ + 0, /* dump */ + 0, /* next_offset */ + 0, /* get length of string */ + &value_count, /* get number of values */ + 0, /* get number of bytes */ + 0, /* get offset to bytes */ + 0, /* get native type */ + 0, /* get sub_section */ + 0, /* pack_missing */ + 0, /* is_missing */ + 0, /* pack_long */ + 0, /* unpack_long */ + &pack_double, /* pack_double */ + 0, /* pack_float */ + &unpack_double, /* unpack_double */ + 0, /* unpack_float */ + 0, /* pack_string */ + 0, /* unpack_string */ + 0, /* pack_string_array */ + 0, /* unpack_string_array */ + 0, /* pack_bytes */ + 0, /* unpack_bytes */ + 0, /* pack_expression */ + 0, /* notify_change */ + 0, /* update_size */ + 0, /* preferred_size */ + 0, /* resize */ + 0, /* nearest_smaller_value */ + 0, /* next accessor */ + 0, /* compare vs. another accessor */ + 0, /* unpack only ith value (double) */ + 0, /* unpack only ith value (float) */ + 0, /* unpack a given set of elements (double) */ + 0, /* unpack a given set of elements (float) */ + 0, /* unpack a subarray */ + 0, /* clear */ + 0, /* clone accessor */ +}; + + +grib_accessor_class* grib_accessor_class_gds_not_present_bitmap = &_grib_accessor_class_gds_not_present_bitmap; + + +//static void init_class(grib_accessor_class* c) +//{ +// INIT +//} + +/* END_CLASS_IMP */ + +static void init(grib_accessor* a, const long v, grib_arguments* args) +{ + int n = 0; + grib_accessor_gds_not_present_bitmap* self = (grib_accessor_gds_not_present_bitmap*)a; + + self->missing_value = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); + self->number_of_values = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); + self->number_of_points = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); + self->latitude_of_first_point = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); + self->ni = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); + a->length = 0; +} + +static int value_count(grib_accessor* a, long* number_of_points) +{ + grib_accessor_gds_not_present_bitmap* self = (grib_accessor_gds_not_present_bitmap*)a; + *number_of_points = 0; + return grib_get_long_internal(grib_handle_of_accessor(a), self->number_of_points, number_of_points); +} + +static int unpack_double(grib_accessor* a, double* val, size_t* len) +{ + grib_accessor_gds_not_present_bitmap* self = (grib_accessor_gds_not_present_bitmap*)a; + + long number_of_points = 0, number_of_values = 0, ni = 0; + long latitude_of_first_point = 0; + size_t i = 0; + size_t n_vals = 0; + long nn = 0; + long missing_value; + + int err = 0; + double* coded_vals = NULL; + err = grib_value_count(a, &nn); + n_vals = nn; + if (err) + return err; + + if ((err = grib_get_long(grib_handle_of_accessor(a), self->number_of_points, &number_of_points)) != GRIB_SUCCESS) + return err; + + if ((err = grib_get_long(grib_handle_of_accessor(a), self->number_of_values, &number_of_values)) != GRIB_SUCCESS) + return err; + + if ((err = grib_get_long(grib_handle_of_accessor(a), self->latitude_of_first_point, &latitude_of_first_point)) != GRIB_SUCCESS) + return err; + + if ((err = grib_get_long(grib_handle_of_accessor(a), self->missing_value, &missing_value)) != GRIB_SUCCESS) + return err; + + if ((err = grib_get_long(grib_handle_of_accessor(a), self->ni, &ni)) != GRIB_SUCCESS) + return err; + + if (*len < number_of_points) { + *len = n_vals; + return GRIB_ARRAY_TOO_SMALL; + } + + if (number_of_values > 0) { + coded_vals = (double*)grib_context_malloc(a->context, number_of_values * sizeof(double)); + + if (coded_vals == NULL) + return GRIB_OUT_OF_MEMORY; + } + + if (latitude_of_first_point == 0) { + for (i = 0; i < number_of_values; i++) + val[i] = 1; + for (i = number_of_values; i < number_of_points; i++) + val[i] = 0; + } + else { + for (i = 0; i < ni - 1; i++) + val[i] = 0; + for (i = ni - 1; i < number_of_points; i++) + val[i] = 1; + } + + *len = number_of_points; + + grib_context_free(a->context, coded_vals); + return err; +} + +#if 0 + +static void grib_set_bit_on( unsigned char* p, long *bitp){ + unsigned char o = 1; + p += (*bitp >> 3); + o <<= 7-((*bitp)%8); + *p |= o; + (*bitp)+=1; +} +static int pack_double(grib_accessor* a, const double* val,size_t *len) +{ + grib_accessor_gds_not_present_bitmap* self = (grib_accessor_gds_not_present_bitmap*)a; + + size_t tlen; + + unsigned char* buf = NULL; + long i; + int err = 0; + long pos = 0; + long bmaplen = 0; + const int bit_padding = 16; + double miss_values = 0; + tlen = ((*len+bit_padding-1)/bit_padding*bit_padding)/8; + + if((err = grib_get_double_internal(grib_handle_of_accessor(a), self->missing_value, &miss_values)) != GRIB_SUCCESS) + { + grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_class_bitmap : pack_double : Cannot unpack %s err=%d ",self->missing_value,err); + return err; + } + + buf = grib_context_malloc_clear(a->context,tlen); + if(!buf) return GRIB_OUT_OF_MEMORY; + pos=0; + for(i=0;i<*len;i++) + { + if (val[i] == miss_values) + pos++; + else{ + bmaplen++; + grib_set_bit_on(buf, &pos); + } + } + + if((err = grib_set_long_internal(grib_handle_of_accessor(a), self->unusedBits,tlen*8 - *len )) != GRIB_SUCCESS) { + grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_class_bitmap : pack_double : Cannot pack %s err=%d ",self->unusedBits,err); + grib_context_free(a->context,buf); + return err; + } + + + grib_buffer_replace(a, buf, tlen,1,1); + + grib_context_free(a->context,buf); + + return GRIB_SUCCESS; +} + +#else + +static int pack_double(grib_accessor* a, const double* val, size_t* len) +{ + return GRIB_NOT_IMPLEMENTED; +} + +#endif diff --git a/src/grib_accessor_class_codeflag.cc b/src/grib_accessor_class_codeflag.cc index 376e84e06..000611f88 100644 --- a/src/grib_accessor_class_codeflag.cc +++ b/src/grib_accessor_class_codeflag.cc @@ -160,11 +160,9 @@ static int grib_get_codeflag(grib_accessor* a, long code, char* codename) return GRIB_FILE_NOT_FOUND; } -#if 0 - strcpy(codename, self->tablename); - strcat(codename,": "); - j = strlen(codename); -#endif + // strcpy(codename, self->tablename); + // strcat(codename,": "); + // j = strlen(codename); while (fgets(line, sizeof(line) - 1, f)) { sscanf(line, "%49s %49s", num, bval); diff --git a/src/grib_accessor_class_data_g22order_packing.cc b/src/grib_accessor_class_data_g22order_packing.cc index 13cb49caa..93a9863d3 100644 --- a/src/grib_accessor_class_data_g22order_packing.cc +++ b/src/grib_accessor_class_data_g22order_packing.cc @@ -390,7 +390,7 @@ static void uint_char(unsigned int i, unsigned char* p) p[1] = (i >> 16) & 255; p[2] = (i >> 8) & 255; p[3] = (i)&255; - } +} static unsigned char* mk_bms(grib_accessor* a, double* data, unsigned int* ndata) { diff --git a/src/grib_accessor_class_gds_is_present.cc b/src/grib_accessor_class_gds_is_present.cc index 2601e3cd5..3addb0a43 100644 --- a/src/grib_accessor_class_gds_is_present.cc +++ b/src/grib_accessor_class_gds_is_present.cc @@ -121,10 +121,11 @@ static void init(grib_accessor* a, const long l, grib_arguments* c) { int n = 0; grib_accessor_gds_is_present* self = (grib_accessor_gds_is_present*)a; - self->gds_present = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++); - self->grid_definition = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++); - self->bitmap_present = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++); - self->values = grib_arguments_get_name(grib_handle_of_accessor(a), c, n++); + grib_handle* h = grib_handle_of_accessor(a); + self->gds_present = grib_arguments_get_name(h, c, n++); + self->grid_definition = grib_arguments_get_name(h, c, n++); + self->bitmap_present = grib_arguments_get_name(h, c, n++); + self->values = grib_arguments_get_name(h, c, n++); a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION; a->flags |= GRIB_ACCESSOR_FLAG_HIDDEN; @@ -133,13 +134,13 @@ static void init(grib_accessor* a, const long l, grib_arguments* c) static int pack_long(grib_accessor* a, const long* val, size_t* len) { - long missing = 255; - int ret = 0; - size_t size = 0; - double* values; - grib_context* c = a->context; - grib_handle* h = grib_handle_of_accessor(a); grib_accessor_gds_is_present* self = (grib_accessor_gds_is_present*)a; + long missing = 255; + int ret = 0; + size_t size = 0; + double* values = NULL; + grib_context* c = a->context; + grib_handle* h = grib_handle_of_accessor(a); if (*val != 1) return GRIB_NOT_IMPLEMENTED; diff --git a/src/grib_accessor_class_gds_not_present_bitmap.cc b/src/grib_accessor_class_gds_not_present_bitmap.cc index 95651ed35..dfee779ab 100644 --- a/src/grib_accessor_class_gds_not_present_bitmap.cc +++ b/src/grib_accessor_class_gds_not_present_bitmap.cc @@ -126,12 +126,13 @@ static void init(grib_accessor* a, const long v, grib_arguments* args) { int n = 0; grib_accessor_gds_not_present_bitmap* self = (grib_accessor_gds_not_present_bitmap*)a; + grib_handle* hand = grib_handle_of_accessor(a); - self->missing_value = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); - self->number_of_values = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); - self->number_of_points = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); - self->latitude_of_first_point = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); - self->ni = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); + self->missing_value = grib_arguments_get_name(hand, args, n++); + self->number_of_values = grib_arguments_get_name(hand, args, n++); + self->number_of_points = grib_arguments_get_name(hand, args, n++); + self->latitude_of_first_point = grib_arguments_get_name(hand, args, n++); + self->ni = grib_arguments_get_name(hand, args, n++); a->length = 0; } @@ -145,6 +146,7 @@ static int value_count(grib_accessor* a, long* number_of_points) static int unpack_double(grib_accessor* a, double* val, size_t* len) { grib_accessor_gds_not_present_bitmap* self = (grib_accessor_gds_not_present_bitmap*)a; + grib_handle* hand = grib_handle_of_accessor(a); long number_of_points = 0, number_of_values = 0, ni = 0; long latitude_of_first_point = 0; @@ -160,19 +162,19 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) if (err) return err; - if ((err = grib_get_long(grib_handle_of_accessor(a), self->number_of_points, &number_of_points)) != GRIB_SUCCESS) + if ((err = grib_get_long(hand, self->number_of_points, &number_of_points)) != GRIB_SUCCESS) return err; - if ((err = grib_get_long(grib_handle_of_accessor(a), self->number_of_values, &number_of_values)) != GRIB_SUCCESS) + if ((err = grib_get_long(hand, self->number_of_values, &number_of_values)) != GRIB_SUCCESS) return err; - if ((err = grib_get_long(grib_handle_of_accessor(a), self->latitude_of_first_point, &latitude_of_first_point)) != GRIB_SUCCESS) + if ((err = grib_get_long(hand, self->latitude_of_first_point, &latitude_of_first_point)) != GRIB_SUCCESS) return err; - if ((err = grib_get_long(grib_handle_of_accessor(a), self->missing_value, &missing_value)) != GRIB_SUCCESS) + if ((err = grib_get_long(hand, self->missing_value, &missing_value)) != GRIB_SUCCESS) return err; - if ((err = grib_get_long(grib_handle_of_accessor(a), self->ni, &ni)) != GRIB_SUCCESS) + if ((err = grib_get_long(hand, self->ni, &ni)) != GRIB_SUCCESS) return err; if (*len < number_of_points) { @@ -206,68 +208,9 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) return err; } -#if 0 - -static void grib_set_bit_on( unsigned char* p, long *bitp){ - unsigned char o = 1; - p += (*bitp >> 3); - o <<= 7-((*bitp)%8); - *p |= o; - (*bitp)+=1; -} - -static int pack_double(grib_accessor* a, const double* val,size_t *len){ - grib_accessor_gds_not_present_bitmap* self = (grib_accessor_gds_not_present_bitmap*)a; - - size_t tlen; - - unsigned char* buf = NULL; - long i; - int err = 0; - long pos = 0; - long bmaplen = 0; - const int bit_padding = 16; - double miss_values = 0; - tlen = ((*len+bit_padding-1)/bit_padding*bit_padding)/8; - - if((err = grib_get_double_internal(grib_handle_of_accessor(a), self->missing_value, &miss_values)) != GRIB_SUCCESS) - { - grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_class_bitmap : pack_double : Cannot unpack %s err=%d ",self->missing_value,err); - return err; - } - - buf = grib_context_malloc_clear(a->context,tlen); - if(!buf) return GRIB_OUT_OF_MEMORY; - pos=0; - for(i=0;i<*len;i++) - { - if (val[i] == miss_values) - pos++; - else{ - bmaplen++; - grib_set_bit_on(buf, &pos); - } - } - - if((err = grib_set_long_internal(grib_handle_of_accessor(a), self->unusedBits,tlen*8 - *len )) != GRIB_SUCCESS) { - grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_class_bitmap : pack_double : Cannot pack %s err=%d ",self->unusedBits,err); - grib_context_free(a->context,buf); - return err; - } - - - grib_buffer_replace(a, buf, tlen,1,1); - - grib_context_free(a->context,buf); - - return GRIB_SUCCESS; -} - -#else - static int pack_double(grib_accessor* a, const double* val, size_t* len) { + // See deprecated/grib_accessor_class_gds_not_present_bitmap.cc for + // a possible implementation return GRIB_NOT_IMPLEMENTED; } - -#endif diff --git a/src/grib_accessor_class_long.cc b/src/grib_accessor_class_long.cc index 7fbe9e0d6..5f32746e1 100644 --- a/src/grib_accessor_class_long.cc +++ b/src/grib_accessor_class_long.cc @@ -178,7 +178,6 @@ static int is_missing(grib_accessor* a){ Assert( ret == 0); return value == GRIB_MISSING_LONG; } - return 0; } */ @@ -277,12 +276,10 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len) { long v = 0; /* The converted value */ -#if 0 - /* Requires more work e.g. filter */ - if (strcmp_nocase(val, "missing")==0) { - return pack_missing(a); - } -#endif + // Requires more work e.g. filter + //if (strcmp_nocase(val, "missing")==0) { + // return pack_missing(a); + //} if (string_to_long(val, &v) != GRIB_SUCCESS) { grib_context_log(a->context, GRIB_LOG_ERROR,