decode SET OF in OER
diff --git a/skeletons/NativeInteger_oer.c b/skeletons/NativeInteger_oer.c
index 08cb6a6..25794e2 100644
--- a/skeletons/NativeInteger_oer.c
+++ b/skeletons/NativeInteger_oer.c
@@ -41,23 +41,23 @@
if(specs && specs->field_unsigned) {
unsigned long ul;
- if(asn_INTEGER2ulong(&tmpint, &ul) != 0) {
- ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
- rval.code = RC_FAIL;
- rval.consumed = 0;
- return rval;
- } else {
+ int ok = asn_INTEGER2ulong(&tmpint, &ul) == 0;
+ ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+ if(ok) {
*native = ul;
+ } else {
+ rval.code = RC_FAIL;
+ return rval;
}
} else {
long l;
- if(asn_INTEGER2long(&tmpint, &l) != 0) {
- ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
- rval.code = RC_FAIL;
- rval.consumed = 0;
- return rval;
- } else {
+ int ok = asn_INTEGER2long(&tmpint, &l) == 0;
+ ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint);
+ if(ok) {
*native = l;
+ } else {
+ rval.code = RC_FAIL;
+ return rval;
}
}