Commit ebed802c authored by Leith Bade's avatar Leith Bade Committed by Mouse

Check SEQUENCE field constraint check result instead of returning

parent 0b34c0f7
...@@ -124,6 +124,8 @@ SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, ...@@ -124,6 +124,8 @@ SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
for(edx = 0; edx < td->elements_count; edx++) { for(edx = 0; edx < td->elements_count; edx++) {
asn_TYPE_member_t *elm = &td->elements[edx]; asn_TYPE_member_t *elm = &td->elements[edx];
const void *memb_ptr; const void *memb_ptr;
asn_constr_check_f *constr;
int ret;
if(elm->flags & ATF_POINTER) { if(elm->flags & ATF_POINTER) {
memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset);
...@@ -139,14 +141,12 @@ SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, ...@@ -139,14 +141,12 @@ SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
} }
if(elm->encoding_constraints.general_constraints) { constr = elm->encoding_constraints.general_constraints;
int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, if(!constr)
ctfailcb, app_key); constr = elm->type->encoding_constraints.general_constraints;
ret = constr(elm->type, memb_ptr, ctfailcb, app_key);
if(ret) return ret; if(ret) return ret;
} else {
return elm->type->encoding_constraints.general_constraints(elm->type,
memb_ptr, ctfailcb, app_key);
}
} }
return 0; return 0;
......
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