aboutsummaryrefslogtreecommitdiffstats
path: root/skeletons/der_encoder.c
diff options
context:
space:
mode:
authorBi-Ruei, Chiu <biruei.chiu@gmail.com>2017-08-20 01:25:45 +0800
committerBi-Ruei, Chiu <biruei.chiu@gmail.com>2017-08-24 14:09:28 +0800
commit1f87ac0058bdf5345cc8dff5d98df09405e3dd2c (patch)
tree03f0e3f57b698d7b0f0d8dcc9a71e7c1041b305f /skeletons/der_encoder.c
parentfadb26aaf14e07accdee7b656bda36644a91d7ad (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.c4
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) {