allow local cleanup
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@476 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/skeletons/asn_internal.h b/skeletons/asn_internal.h
index e8a6993..a7690eb 100644
--- a/skeletons/asn_internal.h
+++ b/skeletons/asn_internal.h
@@ -46,9 +46,9 @@
/*
* Invoke the application-supplied callback and fail, if something is wrong.
*/
-#define __ASN_E_cbc(buf, size) (cb((buf), (size), app_key) == -1)
+#define __ASN_E_cbc(buf, size) (cb((buf), (size), app_key) < 0)
#define _ASN_E_CALLBACK(foo) do { \
- if(foo) _ASN_ENCODE_FAILED; \
+ if(foo) goto cb_failed; \
} while(0)
#define _ASN_CALLBACK(buf, size) \
_ASN_E_CALLBACK(__ASN_E_cbc(buf, size))