diff options
author | Bi-Ruei, Chiu <biruei.chiu@gmail.com> | 2017-08-20 01:25:45 +0800 |
---|---|---|
committer | Bi-Ruei, Chiu <biruei.chiu@gmail.com> | 2017-08-24 14:09:28 +0800 |
commit | 1f87ac0058bdf5345cc8dff5d98df09405e3dd2c (patch) | |
tree | 03f0e3f57b698d7b0f0d8dcc9a71e7c1041b305f /skeletons/der_encoder.c | |
parent | fadb26aaf14e07accdee7b656bda36644a91d7ad (diff) |
Move type operations to another structure
Every type has free, print, check_constraints, ber_decoder, der_encoder,
xer_decoder, xer_encoder, uper_decoder, uper_encoder and outmost_tag
operations. We move them out to a separate structure asn_TYPE_operation_t.
Combined with previous logic simplification, these operations are based
on ASN.1 basic types, constructed types and string types. So we can
reduce the space occupied by asn_TYPE_descriptor_t variables.
Diffstat (limited to 'skeletons/der_encoder.c')
-rw-r--r-- | skeletons/der_encoder.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/skeletons/der_encoder.c b/skeletons/der_encoder.c index 1e2668e0..8673a31c 100644 --- a/skeletons/der_encoder.c +++ b/skeletons/der_encoder.c @@ -21,7 +21,7 @@ der_encode(asn_TYPE_descriptor_t *type_descriptor, void *struct_ptr, /* * Invoke type-specific encoder. */ - return type_descriptor->der_encoder(type_descriptor, + return type_descriptor->op->der_encoder(type_descriptor, struct_ptr, /* Pointer to the destination structure */ 0, 0, consume_bytes, app_key); @@ -59,7 +59,7 @@ der_encode_to_buffer(asn_TYPE_descriptor_t *type_descriptor, void *struct_ptr, arg.buffer = buffer; arg.left = buffer_size; - ec = type_descriptor->der_encoder(type_descriptor, + ec = type_descriptor->op->der_encoder(type_descriptor, struct_ptr, /* Pointer to the destination structure */ 0, 0, encode_to_buffer_cb, &arg); if(ec.encoded != -1) { |