Commit d84f6032 authored by Lev Walkin's avatar Lev Walkin

ensure compilation with -std=89 and make constness explicit.

parent aa067a98
...@@ -186,8 +186,8 @@ asn_dec_rval_t ...@@ -186,8 +186,8 @@ asn_dec_rval_t
ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
const asn_per_constraints_t *constraints, void **sptr, const asn_per_constraints_t *constraints, void **sptr,
asn_per_data_t *pd) { asn_per_data_t *pd) {
asn_OCTET_STRING_specifics_t *specs = const asn_OCTET_STRING_specifics_t *specs =
td->specifics ? (asn_OCTET_STRING_specifics_t *)td->specifics td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_ANY_specs; : &asn_SPC_ANY_specs;
size_t consumed_myself = 0; size_t consumed_myself = 0;
int repeat; int repeat;
......
...@@ -319,8 +319,8 @@ BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, ...@@ -319,8 +319,8 @@ BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
asn_TYPE_descriptor_t *td, asn_TYPE_descriptor_t *td,
const asn_per_constraints_t *constraints, void **sptr, const asn_per_constraints_t *constraints, void **sptr,
asn_per_data_t *pd) { asn_per_data_t *pd) {
asn_OCTET_STRING_specifics_t *specs = td->specifics const asn_OCTET_STRING_specifics_t *specs = td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_BIT_STRING_specs; : &asn_SPC_BIT_STRING_specs;
const asn_per_constraints_t *pc = const asn_per_constraints_t *pc =
constraints ? constraints : td->encoding_constraints.per_constraints; constraints ? constraints : td->encoding_constraints.per_constraints;
...@@ -422,8 +422,8 @@ asn_enc_rval_t ...@@ -422,8 +422,8 @@ asn_enc_rval_t
BIT_STRING_encode_uper(asn_TYPE_descriptor_t *td, BIT_STRING_encode_uper(asn_TYPE_descriptor_t *td,
const asn_per_constraints_t *constraints, void *sptr, const asn_per_constraints_t *constraints, void *sptr,
asn_per_outp_t *po) { asn_per_outp_t *po) {
asn_OCTET_STRING_specifics_t *specs = const asn_OCTET_STRING_specifics_t *specs =
td->specifics ? (asn_OCTET_STRING_specifics_t *)td->specifics td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_BIT_STRING_specs; : &asn_SPC_BIT_STRING_specs;
const asn_per_constraints_t *pc = const asn_per_constraints_t *pc =
constraints ? constraints : td->encoding_constraints.per_constraints; constraints ? constraints : td->encoding_constraints.per_constraints;
...@@ -486,9 +486,9 @@ BIT_STRING_encode_uper(asn_TYPE_descriptor_t *td, ...@@ -486,9 +486,9 @@ BIT_STRING_encode_uper(asn_TYPE_descriptor_t *td,
} }
if(csiz->effective_bits >= 0 && !inext) { if(csiz->effective_bits >= 0 && !inext) {
int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound;
ASN_DEBUG("Encoding %zu bytes (%ld), length in %d bits", st->size, ASN_DEBUG("Encoding %zu bytes (%ld), length in %d bits", st->size,
size_in_bits - csiz->lower_bound, csiz->effective_bits); size_in_bits - csiz->lower_bound, csiz->effective_bits);
int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound;
ret = per_put_few_bits( ret = per_put_few_bits(
po, po,
add_trailer ? csiz->lower_bound : size_in_bits - csiz->lower_bound, add_trailer ? csiz->lower_bound : size_in_bits - csiz->lower_bound,
...@@ -542,8 +542,8 @@ asn_random_fill_result_t ...@@ -542,8 +542,8 @@ asn_random_fill_result_t
BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
const asn_encoding_constraints_t *constraints, const asn_encoding_constraints_t *constraints,
size_t max_length) { size_t max_length) {
asn_OCTET_STRING_specifics_t *specs = const asn_OCTET_STRING_specifics_t *specs =
td->specifics ? (asn_OCTET_STRING_specifics_t *)td->specifics td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_BIT_STRING_specs; : &asn_SPC_BIT_STRING_specs;
asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
......
CFLAGS = $(filter-out $(CODE_COVERAGE_CFLAGS), @CFLAGS@) CFLAGS = $(filter-out $(CODE_COVERAGE_CFLAGS), @CFLAGS@)
CFLAGS += ${SKELETONS_CFLAGS} # Put -std=c89 at the end!
AM_CFLAGS = $(SKELETONS_CFLAGS)
dist_pkgdata_DATA = \ dist_pkgdata_DATA = \
${srcdir}/README \ ${srcdir}/README \
......
...@@ -180,8 +180,8 @@ asn_dec_rval_t ...@@ -180,8 +180,8 @@ asn_dec_rval_t
OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx,
asn_TYPE_descriptor_t *td, asn_TYPE_descriptor_t *td,
void **sptr, const void *buf_ptr, size_t size, int tag_mode) { void **sptr, const void *buf_ptr, size_t size, int tag_mode) {
asn_OCTET_STRING_specifics_t *specs = td->specifics const asn_OCTET_STRING_specifics_t *specs = td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_OCTET_STRING_specs; : &asn_SPC_OCTET_STRING_specs;
BIT_STRING_t *st = (BIT_STRING_t *)*sptr; BIT_STRING_t *st = (BIT_STRING_t *)*sptr;
asn_dec_rval_t rval; asn_dec_rval_t rval;
...@@ -258,7 +258,7 @@ OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, ...@@ -258,7 +258,7 @@ OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx,
?size:(size_t)sel->left); ?size:(size_t)sel->left);
ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", sel, ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel,
(long)(sel?sel->left:0), (long)(sel?sel->left:0),
(long)(sel?sel->want_nulls:0), (long)(sel?sel->want_nulls:0),
(long)(sel?sel->got:0) (long)(sel?sel->got:0)
...@@ -495,7 +495,7 @@ OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, ...@@ -495,7 +495,7 @@ OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx,
if(sel) { if(sel) {
ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld",
sel->prev, sel->want_nulls, (void *)sel->prev, sel->want_nulls,
(long)sel->left, (long)sel->got, (long)size); (long)sel->left, (long)sel->got, (long)size);
if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { if(sel->prev || sel->want_nulls > 1 || sel->left > 0) {
RETURN(RC_WMORE); RETURN(RC_WMORE);
...@@ -536,8 +536,8 @@ OCTET_STRING_encode_der(asn_TYPE_descriptor_t *td, void *sptr, ...@@ -536,8 +536,8 @@ OCTET_STRING_encode_der(asn_TYPE_descriptor_t *td, void *sptr,
int tag_mode, ber_tlv_tag_t tag, int tag_mode, ber_tlv_tag_t tag,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_enc_rval_t er; asn_enc_rval_t er;
asn_OCTET_STRING_specifics_t *specs = td->specifics const asn_OCTET_STRING_specifics_t *specs = td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_OCTET_STRING_specs; : &asn_SPC_OCTET_STRING_specs;
BIT_STRING_t *st = (BIT_STRING_t *)sptr; BIT_STRING_t *st = (BIT_STRING_t *)sptr;
enum asn_OS_Subvariant type_variant = specs->subvariant; enum asn_OS_Subvariant type_variant = specs->subvariant;
...@@ -1125,8 +1125,8 @@ OCTET_STRING__decode_xer(const asn_codec_ctx_t *opt_codec_ctx, ...@@ -1125,8 +1125,8 @@ OCTET_STRING__decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
int have_more) int have_more)
) { ) {
OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr;
asn_OCTET_STRING_specifics_t *specs = td->specifics const asn_OCTET_STRING_specifics_t *specs = td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_OCTET_STRING_specs; : &asn_SPC_OCTET_STRING_specs;
const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
asn_struct_ctx_t *ctx; /* Per-structure parser context */ asn_struct_ctx_t *ctx; /* Per-structure parser context */
...@@ -1348,8 +1348,8 @@ OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, ...@@ -1348,8 +1348,8 @@ OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
asn_TYPE_descriptor_t *td, asn_TYPE_descriptor_t *td,
const asn_per_constraints_t *constraints, void **sptr, const asn_per_constraints_t *constraints, void **sptr,
asn_per_data_t *pd) { asn_per_data_t *pd) {
asn_OCTET_STRING_specifics_t *specs = td->specifics const asn_OCTET_STRING_specifics_t *specs = td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_OCTET_STRING_specs; : &asn_SPC_OCTET_STRING_specs;
const asn_per_constraints_t *pc = const asn_per_constraints_t *pc =
constraints ? constraints : td->encoding_constraints.per_constraints; constraints ? constraints : td->encoding_constraints.per_constraints;
...@@ -1497,8 +1497,8 @@ asn_enc_rval_t ...@@ -1497,8 +1497,8 @@ asn_enc_rval_t
OCTET_STRING_encode_uper(asn_TYPE_descriptor_t *td, OCTET_STRING_encode_uper(asn_TYPE_descriptor_t *td,
const asn_per_constraints_t *constraints, void *sptr, const asn_per_constraints_t *constraints, void *sptr,
asn_per_outp_t *po) { asn_per_outp_t *po) {
asn_OCTET_STRING_specifics_t *specs = td->specifics const asn_OCTET_STRING_specifics_t *specs = td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_OCTET_STRING_specs; : &asn_SPC_OCTET_STRING_specs;
const asn_per_constraints_t *pc = constraints ? constraints const asn_per_constraints_t *pc = constraints ? constraints
: td->encoding_constraints.per_constraints; : td->encoding_constraints.per_constraints;
...@@ -1699,7 +1699,7 @@ void ...@@ -1699,7 +1699,7 @@ void
OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr,
enum asn_struct_free_method method) { enum asn_struct_free_method method) {
OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; OCTET_STRING_t *st = (OCTET_STRING_t *)sptr;
asn_OCTET_STRING_specifics_t *specs; const asn_OCTET_STRING_specifics_t *specs;
asn_struct_ctx_t *ctx; asn_struct_ctx_t *ctx;
struct _stack *stck; struct _stack *stck;
...@@ -1707,7 +1707,7 @@ OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, ...@@ -1707,7 +1707,7 @@ OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr,
return; return;
specs = td->specifics specs = td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_OCTET_STRING_specs; : &asn_SPC_OCTET_STRING_specs;
ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
...@@ -1739,7 +1739,8 @@ OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, ...@@ -1739,7 +1739,8 @@ OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr,
break; break;
case ASFM_FREE_UNDERLYING_AND_RESET: case ASFM_FREE_UNDERLYING_AND_RESET:
memset(sptr, 0, memset(sptr, 0,
((asn_OCTET_STRING_specifics_t *)(td->specifics))->struct_size); ((const asn_OCTET_STRING_specifics_t *)(td->specifics))
->struct_size);
break; break;
} }
} }
...@@ -1865,8 +1866,8 @@ asn_random_fill_result_t ...@@ -1865,8 +1866,8 @@ asn_random_fill_result_t
OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
const asn_encoding_constraints_t *constraints, const asn_encoding_constraints_t *constraints,
size_t max_length) { size_t max_length) {
asn_OCTET_STRING_specifics_t *specs = td->specifics const asn_OCTET_STRING_specifics_t *specs = td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
: &asn_SPC_OCTET_STRING_specs; : &asn_SPC_OCTET_STRING_specs;
asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
......
...@@ -71,7 +71,7 @@ OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, ...@@ -71,7 +71,7 @@ OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td,
* Internally useful stuff. * * Internally useful stuff. *
****************************/ ****************************/
typedef const struct asn_OCTET_STRING_specifics_s { typedef struct asn_OCTET_STRING_specifics_s {
/* /*
* Target structure description. * Target structure description.
*/ */
......
...@@ -14,10 +14,9 @@ OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, ...@@ -14,10 +14,9 @@ OCTET_STRING_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
asn_TYPE_descriptor_t *td, asn_TYPE_descriptor_t *td,
const asn_oer_constraints_t *constraints, void **sptr, const asn_oer_constraints_t *constraints, void **sptr,
const void *ptr, size_t size) { const void *ptr, size_t size) {
asn_OCTET_STRING_specifics_t *specs = const asn_OCTET_STRING_specifics_t *specs =
td->specifics td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics : &asn_SPC_OCTET_STRING_specs;
: (asn_OCTET_STRING_specifics_t *)&asn_SPC_OCTET_STRING_specs;
OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr;
const asn_oer_constraints_t *cts = const asn_oer_constraints_t *cts =
constraints ? constraints : td->encoding_constraints.oer_constraints; constraints ? constraints : td->encoding_constraints.oer_constraints;
...@@ -104,10 +103,9 @@ asn_enc_rval_t ...@@ -104,10 +103,9 @@ asn_enc_rval_t
OCTET_STRING_encode_oer(asn_TYPE_descriptor_t *td, OCTET_STRING_encode_oer(asn_TYPE_descriptor_t *td,
const asn_oer_constraints_t *constraints, void *sptr, const asn_oer_constraints_t *constraints, void *sptr,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_OCTET_STRING_specifics_t *specs = const asn_OCTET_STRING_specifics_t *specs =
td->specifics td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
? (asn_OCTET_STRING_specifics_t *)td->specifics : &asn_SPC_OCTET_STRING_specs;
: (asn_OCTET_STRING_specifics_t *)&asn_SPC_OCTET_STRING_specs;
OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; OCTET_STRING_t *st = (OCTET_STRING_t *)sptr;
const asn_oer_constraints_t *cts = const asn_oer_constraints_t *cts =
constraints ? constraints : td->encoding_constraints.oer_constraints; constraints ? constraints : td->encoding_constraints.oer_constraints;
......
...@@ -107,7 +107,8 @@ OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t ...@@ -107,7 +107,8 @@ OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t
} }
if(*memb_ptr2) { if(*memb_ptr2) {
asn_CHOICE_specifics_t *specs = selected.type_descriptor->specifics; const asn_CHOICE_specifics_t *specs =
selected.type_descriptor->specifics;
if(elm->flags & ATF_POINTER) { if(elm->flags & ATF_POINTER) {
ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); ASN_STRUCT_FREE(*selected.type_descriptor, inner_value);
*memb_ptr2 = NULL; *memb_ptr2 = NULL;
...@@ -228,7 +229,8 @@ OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t ...@@ -228,7 +229,8 @@ OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t
* will have to be restarted. * will have to be restarted.
*/ */
if(*memb_ptr2) { if(*memb_ptr2) {
asn_CHOICE_specifics_t *specs = selected.type_descriptor->specifics; const asn_CHOICE_specifics_t *specs =
selected.type_descriptor->specifics;
if(elm->flags & ATF_POINTER) { if(elm->flags & ATF_POINTER) {
ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); ASN_STRUCT_FREE(*selected.type_descriptor, inner_value);
*memb_ptr2 = NULL; *memb_ptr2 = NULL;
...@@ -343,7 +345,8 @@ OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, ...@@ -343,7 +345,8 @@ OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx,
case RC_WMORE: case RC_WMORE:
case RC_FAIL: case RC_FAIL:
if(*memb_ptr2) { if(*memb_ptr2) {
asn_CHOICE_specifics_t *specs = selected.type_descriptor->specifics; const asn_CHOICE_specifics_t *specs =
selected.type_descriptor->specifics;
if(elm->flags & ATF_POINTER) { if(elm->flags & ATF_POINTER) {
ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); ASN_STRUCT_FREE(*selected.type_descriptor, inner_value);
*memb_ptr2 = NULL; *memb_ptr2 = NULL;
......
...@@ -77,7 +77,8 @@ OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t ...@@ -77,7 +77,8 @@ OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t
} }
if(*memb_ptr2) { if(*memb_ptr2) {
asn_CHOICE_specifics_t *specs = selected.type_descriptor->specifics; const asn_CHOICE_specifics_t *specs =
selected.type_descriptor->specifics;
if(elm->flags & ATF_POINTER) { if(elm->flags & ATF_POINTER) {
ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); ASN_STRUCT_FREE(*selected.type_descriptor, inner_value);
*memb_ptr2 = NULL; *memb_ptr2 = NULL;
......
...@@ -172,7 +172,7 @@ asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { ...@@ -172,7 +172,7 @@ asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) {
if(obits <= 0 || obits >= 32) return obits ? -1 : 0; if(obits <= 0 || obits >= 32) return obits ? -1 : 0;
ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", ASN_DEBUG("[PER put %d bits %x to %p+%d bits]",
obits, (int)bits, po->buffer, (int)po->nboff); obits, (int)bits, (void *)po->buffer, (int)po->nboff);
/* /*
* Normalize position indicator. * Normalize position indicator.
......
...@@ -55,14 +55,14 @@ int asn_debug_indent; ...@@ -55,14 +55,14 @@ int asn_debug_indent;
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while(0) } while(0)
#else /* !__GNUC__ */ #else /* !__GNUC__ */
void ASN_DEBUG_f(const char *fmt, ...); void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...);
#define ASN_DEBUG ASN_DEBUG_f #define ASN_DEBUG ASN_DEBUG_f
#endif /* __GNUC__ */ #endif /* __GNUC__ */
#else /* EMIT_ASN_DEBUG != 1 */ #else /* EMIT_ASN_DEBUG != 1 */
#if __STDC_VERSION__ >= 199901L #if __STDC_VERSION__ >= 199901L
#define ASN_DEBUG(...) do{}while(0) #define ASN_DEBUG(...) do{}while(0)
#else /* not C99 */ #else /* not C99 */
static void ASN_DEBUG(const char *fmt, ...) { (void)fmt; } static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; }
#endif /* C99 or better */ #endif /* C99 or better */
#endif /* EMIT_ASN_DEBUG */ #endif /* EMIT_ASN_DEBUG */
#endif /* ASN_DEBUG */ #endif /* ASN_DEBUG */
......
...@@ -133,8 +133,9 @@ typedef unsigned int uint32_t; ...@@ -133,8 +133,9 @@ typedef unsigned int uint32_t;
#endif /* __GNUC__ */ #endif /* __GNUC__ */
#endif /* MIN */ #endif /* MIN */
#if __STDC_VERSION__ >= 199901L
#ifndef SIZE_MAX #ifndef SIZE_MAX
#define SIZE_MAX ULONG_MAX #define SIZE_MAX ((~((size_t)0)) >> 1)
#endif #endif
#ifndef RSIZE_MAX /* C11, Annex K */ #ifndef RSIZE_MAX /* C11, Annex K */
...@@ -143,5 +144,13 @@ typedef unsigned int uint32_t; ...@@ -143,5 +144,13 @@ typedef unsigned int uint32_t;
#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ #ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */
#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) #define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1))
#endif #endif
#else /* Old compiler */
#undef SIZE_MAX
#undef RSIZE_MAX
#undef RSSIZE_MAX
#define SIZE_MAX ((~((size_t)0)) >> 1)
#define RSIZE_MAX (SIZE_MAX >> 1)
#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1))
#endif
#endif /* ASN_SYSTEM_H */ #endif /* ASN_SYSTEM_H */
...@@ -108,7 +108,8 @@ CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t ...@@ -108,7 +108,8 @@ CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t
/* /*
* Bring closer parts of structure description. * Bring closer parts of structure description.
*/ */
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs =
(const asn_CHOICE_specifics_t *)td->specifics;
asn_TYPE_member_t *elements = td->elements; asn_TYPE_member_t *elements = td->elements;
/* /*
...@@ -362,7 +363,7 @@ asn_enc_rval_t ...@@ -362,7 +363,7 @@ asn_enc_rval_t
CHOICE_encode_der(asn_TYPE_descriptor_t *td, void *sptr, CHOICE_encode_der(asn_TYPE_descriptor_t *td, void *sptr,
int tag_mode, ber_tlv_tag_t tag, int tag_mode, ber_tlv_tag_t tag,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
asn_TYPE_member_t *elm; /* CHOICE element */ asn_TYPE_member_t *elm; /* CHOICE element */
asn_enc_rval_t erval; asn_enc_rval_t erval;
void *memb_ptr; void *memb_ptr;
...@@ -451,7 +452,7 @@ CHOICE_encode_der(asn_TYPE_descriptor_t *td, void *sptr, ...@@ -451,7 +452,7 @@ CHOICE_encode_der(asn_TYPE_descriptor_t *td, void *sptr,
ber_tlv_tag_t ber_tlv_tag_t
CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
unsigned present; unsigned present;
assert(tag_mode == 0); (void)tag_mode; assert(tag_mode == 0); (void)tag_mode;
...@@ -484,7 +485,7 @@ CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mod ...@@ -484,7 +485,7 @@ CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mod
int int
CHOICE_constraint(asn_TYPE_descriptor_t *td, const void *sptr, CHOICE_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) { asn_app_constraint_failed_f *ctfailcb, void *app_key) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
unsigned present; unsigned present;
if(!sptr) { if(!sptr) {
...@@ -549,7 +550,7 @@ CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t ...@@ -549,7 +550,7 @@ CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t
/* /*
* Bring closer parts of structure description. * Bring closer parts of structure description.
*/ */
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
/* /*
...@@ -776,7 +777,7 @@ asn_enc_rval_t ...@@ -776,7 +777,7 @@ asn_enc_rval_t
CHOICE_encode_xer(asn_TYPE_descriptor_t *td, void *sptr, CHOICE_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
int ilevel, enum xer_encoder_flags_e flags, int ilevel, enum xer_encoder_flags_e flags,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_CHOICE_specifics_t *specs=(asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs=(const asn_CHOICE_specifics_t *)td->specifics;
asn_enc_rval_t er; asn_enc_rval_t er;
unsigned present; unsigned present;
...@@ -828,8 +829,9 @@ asn_dec_rval_t ...@@ -828,8 +829,9 @@ asn_dec_rval_t
CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
const asn_per_constraints_t *constraints, void **sptr, const asn_per_constraints_t *constraints, void **sptr,
asn_per_data_t *pd) { asn_per_data_t *pd) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs =
asn_dec_rval_t rv; (const asn_CHOICE_specifics_t *)td->specifics;
asn_dec_rval_t rv;
const asn_per_constraint_t *ct; const asn_per_constraint_t *ct;
asn_TYPE_member_t *elm; /* CHOICE's element */ asn_TYPE_member_t *elm; /* CHOICE's element */
void *memb_ptr; void *memb_ptr;
...@@ -910,7 +912,7 @@ asn_enc_rval_t ...@@ -910,7 +912,7 @@ asn_enc_rval_t
CHOICE_encode_uper(asn_TYPE_descriptor_t *td, CHOICE_encode_uper(asn_TYPE_descriptor_t *td,
const asn_per_constraints_t *constraints, void *sptr, const asn_per_constraints_t *constraints, void *sptr,
asn_per_outp_t *po) { asn_per_outp_t *po) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
asn_TYPE_member_t *elm; /* CHOICE's element */ asn_TYPE_member_t *elm; /* CHOICE's element */
const asn_per_constraint_t *ct; const asn_per_constraint_t *ct;
void *memb_ptr; void *memb_ptr;
...@@ -994,7 +996,7 @@ CHOICE_encode_uper(asn_TYPE_descriptor_t *td, ...@@ -994,7 +996,7 @@ CHOICE_encode_uper(asn_TYPE_descriptor_t *td,
int int
CHOICE_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, CHOICE_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics;
unsigned present; unsigned present;
if(!sptr) return (cb("<absent>", 8, app_key) < 0) ? -1 : 0; if(!sptr) return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
...@@ -1035,8 +1037,9 @@ CHOICE_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, ...@@ -1035,8 +1037,9 @@ CHOICE_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
void void
CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr,
enum asn_struct_free_method method) { enum asn_struct_free_method method) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs =
unsigned present; (const asn_CHOICE_specifics_t *)td->specifics;
unsigned present;
if(!td || !ptr) if(!td || !ptr)
return; return;
...@@ -1127,7 +1130,8 @@ _set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, ...@@ -1127,7 +1130,8 @@ _set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size,
static const void * static const void *
_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, _get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_TYPE_member_t **elm_ptr, unsigned *present_out) { asn_TYPE_member_t **elm_ptr, unsigned *present_out) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs =
(const asn_CHOICE_specifics_t *)td->specifics;
unsigned present; unsigned present;
if(!sptr) { if(!sptr) {
...@@ -1196,7 +1200,8 @@ CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bp ...@@ -1196,7 +1200,8 @@ CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bp
*/ */
unsigned unsigned
CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs =
(const asn_CHOICE_specifics_t *)td->specifics;
return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size);
} }
...@@ -1209,7 +1214,8 @@ CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { ...@@ -1209,7 +1214,8 @@ CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) {
int int
CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr,
unsigned present) { unsigned present) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs =
(const asn_CHOICE_specifics_t *)td->specifics;
unsigned old_present; unsigned old_present;
if(!sptr) { if(!sptr) {
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
extern "C" { extern "C" {
#endif #endif
typedef const struct asn_CHOICE_specifics_s { typedef struct asn_CHOICE_specifics_s {
/* /*
* Target structure description. * Target structure description.
*/ */
......
...@@ -131,7 +131,8 @@ CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t ...@@ -131,7 +131,8 @@ CHOICE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t
/* /*
* Bring closer parts of structure description. * Bring closer parts of structure description.
*/ */
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs =
(const asn_CHOICE_specifics_t *)td->specifics;
asn_TYPE_member_t *elements = td->elements; asn_TYPE_member_t *elements = td->elements;
/* /*
...@@ -311,7 +312,8 @@ asn_enc_rval_t ...@@ -311,7 +312,8 @@ asn_enc_rval_t
CHOICE_encode_oer(asn_TYPE_descriptor_t *td, CHOICE_encode_oer(asn_TYPE_descriptor_t *td,
const asn_oer_constraints_t *constraints, void *sptr, const asn_oer_constraints_t *constraints, void *sptr,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics; const asn_CHOICE_specifics_t *specs =
(const asn_CHOICE_specifics_t *)td->specifics;
asn_TYPE_member_t *elm; /* CHOICE element */ asn_TYPE_member_t *elm; /* CHOICE element */
unsigned present; unsigned present;
void *memb_ptr; void *memb_ptr;
......
...@@ -115,7 +115,7 @@ SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t ...@@ -115,7 +115,7 @@ SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t
/* /*
* Bring closer parts of structure description. * Bring closer parts of structure description.
*/ */
asn_SEQUENCE_specifics_t *specs = (asn_SEQUENCE_specifics_t *)td->specifics; const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics;
asn_TYPE_member_t *elements = td->elements; asn_TYPE_member_t *elements = td->elements;
/* /*
...@@ -634,8 +634,8 @@ SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t ...@@ -634,8 +634,8 @@ SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t
/* /*
* Bring closer parts of structure description. * Bring closer parts of structure description.
*/ */
asn_SEQUENCE_specifics_t *specs const asn_SEQUENCE_specifics_t *specs
= (asn_SEQUENCE_specifics_t *)td->specifics; = (const asn_SEQUENCE_specifics_t *)td->specifics;
asn_TYPE_member_t *elements = td->elements; asn_TYPE_member_t *elements = td->elements;
const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
...@@ -1020,8 +1020,9 @@ SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, ...@@ -1020,8 +1020,9 @@ SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr,
case ASFM_FREE_UNDERLYING: case ASFM_FREE_UNDERLYING:
break; break;
case ASFM_FREE_UNDERLYING_AND_RESET: case ASFM_FREE_UNDERLYING_AND_RESET:
memset(sptr, 0, memset(
((asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); sptr, 0,
((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size);
break; break;
} }
} }
...@@ -1078,7 +1079,7 @@ asn_dec_rval_t ...@@ -1078,7 +1079,7 @@ asn_dec_rval_t
SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
const asn_per_constraints_t *constraints, void **sptr, const asn_per_constraints_t *constraints, void **sptr,
asn_per_data_t *pd) { asn_per_data_t *pd) {
asn_SEQUENCE_specifics_t *specs = (asn_SEQUENCE_specifics_t *)td->specifics; const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics;
void *st = *sptr; /* Target structure. */ void *st = *sptr; /* Target structure. */
int extpresent; /* Extension additions are present */ int extpresent; /* Extension additions are present */
uint8_t *opres; /* Presence of optional root members */ uint8_t *opres; /* Presence of optional root members */
...@@ -1298,8 +1299,8 @@ SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t ...@@ -1298,8 +1299,8 @@ SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t
static int static int
SEQUENCE_handle_extensions(asn_TYPE_descriptor_t *td, void *sptr, SEQUENCE_handle_extensions(asn_TYPE_descriptor_t *td, void *sptr,
asn_per_outp_t *po1, asn_per_outp_t *po2) { asn_per_outp_t *po1, asn_per_outp_t *po2) {
asn_SEQUENCE_specifics_t *specs const asn_SEQUENCE_specifics_t *specs
= (asn_SEQUENCE_specifics_t *)td->specifics; = (const asn_SEQUENCE_specifics_t *)td->specifics;
int exts_present = 0; int exts_present = 0;
int exts_count = 0; int exts_count = 0;
size_t edx; size_t edx;
...@@ -1351,8 +1352,8 @@ asn_enc_rval_t ...@@ -1351,8 +1352,8 @@ asn_enc_rval_t
SEQUENCE_encode_uper(asn_TYPE_descriptor_t *td, SEQUENCE_encode_uper(asn_TYPE_descriptor_t *td,
const asn_per_constraints_t *constraints, void *sptr, const asn_per_constraints_t *constraints, void *sptr,
asn_per_outp_t *po) { asn_per_outp_t *po) {
asn_SEQUENCE_specifics_t *specs const asn_SEQUENCE_specifics_t *specs
= (asn_SEQUENCE_specifics_t *)td->specifics; = (const asn_SEQUENCE_specifics_t *)td->specifics;
asn_enc_rval_t er; asn_enc_rval_t er;
int n_extensions; int n_extensions;
size_t edx; size_t edx;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
extern "C" { extern "C" {
#endif #endif
typedef const struct asn_SEQUENCE_specifics_s { typedef struct asn_SEQUENCE_specifics_s {
/* /*
* Target structure description. * Target structure description.
*/ */
......
...@@ -92,7 +92,7 @@ SEQUENCE_OF_encode_xer(asn_TYPE_descriptor_t *td, void *sptr, int ilevel, ...@@ -92,7 +92,7 @@ SEQUENCE_OF_encode_xer(asn_TYPE_descriptor_t *td, void *sptr, int ilevel,
enum xer_encoder_flags_e flags, enum xer_encoder_flags_e flags,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_enc_rval_t er; asn_enc_rval_t er;
asn_SET_OF_specifics_t *specs = (asn_SET_OF_specifics_t *)td->specifics; const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
asn_TYPE_member_t *elm = td->elements; asn_TYPE_member_t *elm = td->elements;
asn_anonymous_sequence_ *list = _A_SEQUENCE_FROM_VOID(sptr); asn_anonymous_sequence_ *list = _A_SEQUENCE_FROM_VOID(sptr);
const char *mname = specs->as_XMLValueList const char *mname = specs->as_XMLValueList
......
...@@ -79,7 +79,8 @@ asn_dec_rval_t ...@@ -79,7 +79,8 @@ asn_dec_rval_t
SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, SEQUENCE_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
const asn_oer_constraints_t *constraints, void **struct_ptr, const asn_oer_constraints_t *constraints, void **struct_ptr,
const void *ptr, size_t size) { const void *ptr, size_t size) {
asn_SEQUENCE_specifics_t *specs = (asn_SEQUENCE_specifics_t *)td->specifics; const asn_SEQUENCE_specifics_t *specs =
(const asn_SEQUENCE_specifics_t *)td->specifics;
asn_dec_rval_t rval = {RC_OK, 0}; asn_dec_rval_t rval = {RC_OK, 0};
void *st = *struct_ptr; /* Target structure */ void *st = *struct_ptr; /* Target structure */
asn_struct_ctx_t *ctx; /* Decoder context */ asn_struct_ctx_t *ctx; /* Decoder context */
...@@ -390,7 +391,7 @@ asn_enc_rval_t ...@@ -390,7 +391,7 @@ asn_enc_rval_t
SEQUENCE_encode_oer(asn_TYPE_descriptor_t *td, SEQUENCE_encode_oer(asn_TYPE_descriptor_t *td,
const asn_oer_constraints_t *constraints, void *sptr, const asn_oer_constraints_t *constraints, void *sptr,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_SEQUENCE_specifics_t *specs = (asn_SEQUENCE_specifics_t *)td->specifics; const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics;
size_t computed_size = 0; size_t computed_size = 0;
int has_extensions_bit = (specs->ext_before >= 0); int has_extensions_bit = (specs->ext_before >= 0);
size_t preamble_bits = (has_extensions_bit + specs->roms_count); size_t preamble_bits = (has_extensions_bit + specs->roms_count);
......
...@@ -99,7 +99,7 @@ SET_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, ...@@ -99,7 +99,7 @@ SET_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
/* /*
* Bring closer parts of structure description. * Bring closer parts of structure description.
*/ */
asn_SET_specifics_t *specs = (asn_SET_specifics_t *)td->specifics; const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics;
asn_TYPE_member_t *elements = td->elements; asn_TYPE_member_t *elements = td->elements;
/* /*
...@@ -393,7 +393,7 @@ SET_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, ...@@ -393,7 +393,7 @@ SET_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
static int static int
_SET_is_populated(asn_TYPE_descriptor_t *td, void *st) { _SET_is_populated(asn_TYPE_descriptor_t *td, void *st) {
asn_SET_specifics_t *specs = (asn_SET_specifics_t *)td->specifics; const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics;
size_t edx; size_t edx;
/* /*
...@@ -435,7 +435,7 @@ asn_enc_rval_t ...@@ -435,7 +435,7 @@ asn_enc_rval_t
SET_encode_der(asn_TYPE_descriptor_t *td, SET_encode_der(asn_TYPE_descriptor_t *td,
void *sptr, int tag_mode, ber_tlv_tag_t tag, void *sptr, int tag_mode, ber_tlv_tag_t tag,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_SET_specifics_t *specs = (asn_SET_specifics_t *)td->specifics; const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics;
size_t computed_size = 0; size_t computed_size = 0;
asn_enc_rval_t er; asn_enc_rval_t er;
int t2m_build_own = (specs->tag2el_count != td->elements_count); int t2m_build_own = (specs->tag2el_count != td->elements_count);
...@@ -611,7 +611,7 @@ SET_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, ...@@ -611,7 +611,7 @@ SET_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
/* /*
* Bring closer parts of structure description. * Bring closer parts of structure description.
*/ */
asn_SET_specifics_t *specs = (asn_SET_specifics_t *)td->specifics; const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics;
asn_TYPE_member_t *elements = td->elements; asn_TYPE_member_t *elements = td->elements;
const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
...@@ -824,7 +824,7 @@ asn_enc_rval_t ...@@ -824,7 +824,7 @@ asn_enc_rval_t
SET_encode_xer(asn_TYPE_descriptor_t *td, void *sptr, SET_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
int ilevel, enum xer_encoder_flags_e flags, int ilevel, enum xer_encoder_flags_e flags,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_SET_specifics_t *specs = (asn_SET_specifics_t *)td->specifics; const asn_SET_specifics_t *specs = (const asn_SET_specifics_t *)td->specifics;
asn_enc_rval_t er; asn_enc_rval_t er;
int xcan = (flags & XER_F_CANONICAL); int xcan = (flags & XER_F_CANONICAL);
const asn_TYPE_tag2member_t *t2m = specs->tag2el_cxer; const asn_TYPE_tag2member_t *t2m = specs->tag2el_cxer;
...@@ -958,7 +958,8 @@ SET_free(const asn_TYPE_descriptor_t *td, void *ptr, ...@@ -958,7 +958,8 @@ SET_free(const asn_TYPE_descriptor_t *td, void *ptr,
case ASFM_FREE_UNDERLYING: case ASFM_FREE_UNDERLYING:
break; break;
case ASFM_FREE_UNDERLYING_AND_RESET: case ASFM_FREE_UNDERLYING_AND_RESET:
memset(ptr, 0, ((asn_SET_specifics_t *)(td->specifics))->struct_size); memset(ptr, 0,
((const asn_SET_specifics_t *)(td->specifics))->struct_size);
break; break;
} }
} }
......
...@@ -12,7 +12,7 @@ extern "C" { ...@@ -12,7 +12,7 @@ extern "C" {
#endif #endif
typedef const struct asn_SET_specifics_s { typedef struct asn_SET_specifics_s {
/* /*
* Target structure description. * Target structure description.
*/ */
......
...@@ -71,7 +71,7 @@ SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t ...@@ -71,7 +71,7 @@ SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t
/* /*
* Bring closer parts of structure description. * Bring closer parts of structure description.
*/ */
asn_SET_OF_specifics_t *specs = (asn_SET_OF_specifics_t *)td->specifics; const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
asn_TYPE_member_t *elm = td->elements; /* Single one */ asn_TYPE_member_t *elm = td->elements; /* Single one */
/* /*
...@@ -472,7 +472,7 @@ SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t ...@@ -472,7 +472,7 @@ SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *t
/* /*
* Bring closer parts of structure description. * Bring closer parts of structure description.
*/ */
asn_SET_OF_specifics_t *specs = (asn_SET_OF_specifics_t *)td->specifics; const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
asn_TYPE_member_t *element = td->elements; asn_TYPE_member_t *element = td->elements;
const char *elm_tag; const char *elm_tag;
const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; const char *xml_tag = opt_mname ? opt_mname : td->xml_tag;
...@@ -655,7 +655,7 @@ SET_OF_encode_xer(asn_TYPE_descriptor_t *td, void *sptr, ...@@ -655,7 +655,7 @@ SET_OF_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
int ilevel, enum xer_encoder_flags_e flags, int ilevel, enum xer_encoder_flags_e flags,
asn_app_consume_bytes_f *cb, void *app_key) { asn_app_consume_bytes_f *cb, void *app_key) {
asn_enc_rval_t er; asn_enc_rval_t er;
asn_SET_OF_specifics_t *specs = (asn_SET_OF_specifics_t *)td->specifics; const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
asn_TYPE_member_t *elm = td->elements; asn_TYPE_member_t *elm = td->elements;
asn_anonymous_set_ *list = _A_SET_FROM_VOID(sptr); asn_anonymous_set_ *list = _A_SET_FROM_VOID(sptr);
const char *mname = specs->as_XMLValueList const char *mname = specs->as_XMLValueList
...@@ -785,7 +785,7 @@ void ...@@ -785,7 +785,7 @@ void
SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr,
enum asn_struct_free_method method) { enum asn_struct_free_method method) {
if(td && ptr) { if(td && ptr) {
asn_SET_OF_specifics_t *specs; const asn_SET_OF_specifics_t *specs;
asn_TYPE_member_t *elm = td->elements; asn_TYPE_member_t *elm = td->elements;
asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr);
asn_struct_ctx_t *ctx; /* Decoder context */ asn_struct_ctx_t *ctx; /* Decoder context */
...@@ -804,7 +804,7 @@ SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, ...@@ -804,7 +804,7 @@ SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr,
asn_set_empty(list); /* Remove (list->array) */ asn_set_empty(list); /* Remove (list->array) */
specs = (asn_SET_OF_specifics_t *)td->specifics; specs = (const asn_SET_OF_specifics_t *)td->specifics;
ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset);
if(ctx->ptr) { if(ctx->ptr) {
ASN_STRUCT_FREE(*elm->type, ctx->ptr); ASN_STRUCT_FREE(*elm->type, ctx->ptr);
...@@ -864,7 +864,7 @@ SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t * ...@@ -864,7 +864,7 @@ SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *
const asn_per_constraints_t *constraints, void **sptr, const asn_per_constraints_t *constraints, void **sptr,
asn_per_data_t *pd) { asn_per_data_t *pd) {
asn_dec_rval_t rv; asn_dec_rval_t rv;
asn_SET_OF_specifics_t *specs = (asn_SET_OF_specifics_t *)td->specifics; const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
asn_TYPE_member_t *elm = td->elements; /* Single one */ asn_TYPE_member_t *elm = td->elements; /* Single one */
void *st = *sptr; void *st = *sptr;
asn_anonymous_set_ *list; asn_anonymous_set_ *list;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
extern "C" { extern "C" {
#endif #endif
typedef const struct asn_SET_OF_specifics_s { typedef struct asn_SET_OF_specifics_s {
/* /*
* Target structure description. * Target structure description.
*/ */
......
...@@ -110,7 +110,7 @@ asn_dec_rval_t ...@@ -110,7 +110,7 @@ asn_dec_rval_t
SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, SET_OF_decode_oer(const asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
const asn_oer_constraints_t *constraints, void **struct_ptr, const asn_oer_constraints_t *constraints, void **struct_ptr,
const void *ptr, size_t size) { const void *ptr, size_t size) {
asn_SET_OF_specifics_t *specs = (asn_SET_OF_specifics_t *)td->specifics; const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics;
asn_dec_rval_t rval = {RC_OK, 0}; asn_dec_rval_t rval = {RC_OK, 0};
void *st = *struct_ptr; /* Target structure */ void *st = *struct_ptr; /* Target structure */
asn_struct_ctx_t *ctx; /* Decoder context */ asn_struct_ctx_t *ctx; /* Decoder context */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment