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))