some fixes
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1292 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1compiler/asn1c_internal.h b/libasn1compiler/asn1c_internal.h
index c37620c..fb8cc1e 100644
--- a/libasn1compiler/asn1c_internal.h
+++ b/libasn1compiler/asn1c_internal.h
@@ -24,15 +24,16 @@
#ifdef WIN32
#include <io.h>
+#include <malloc.h>
+#include <fcntl.h>
#define open _open
#define close _close
-#define alloca _alloca
#define snprintf _snprintf
#define vsnprintf _vsnprintf
#else
-#include <fcntl.h> /* for open(2) */
#include <glob.h> /* for glob(3) */
#endif
+#include <fcntl.h> /* for open(2) */
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h> /* For MAXPATHLEN */
diff --git a/libasn1fix/asn1fix_param.c b/libasn1fix/asn1fix_param.c
index 6b3a629..f8e3a2e 100644
--- a/libasn1fix/asn1fix_param.c
+++ b/libasn1fix/asn1fix_param.c
@@ -50,8 +50,9 @@
rarg.lhs_params = expr->lhs_params;
rarg.rhs_pspecs = rhs_pspecs;
exc = asn1p_expr_clone_with_resolver(expr, resolve_expr, &rarg);
+ if(!exc) return NULL;
rpc = asn1p_expr_clone(rhs_pspecs, 0);
- assert(exc && rpc);
+ assert(rpc);
/*
* Create a new specialization.
@@ -137,6 +138,7 @@
expr->Identifier, expr->meta_type, expr->expr_type);
if(expr->meta_type == AMT_TYPE
|| expr->meta_type == AMT_VALUE
+ || expr->meta_type == AMT_TYPEREF
|| expr->meta_type == AMT_VALUESET) {
DEBUG("Target is a simple type %s",
ASN_EXPR_TYPE2STR(expr->expr_type));
diff --git a/skeletons/constr_SEQUENCE.c b/skeletons/constr_SEQUENCE.c
index 5b57342..2b0ac3d 100644
--- a/skeletons/constr_SEQUENCE.c
+++ b/skeletons/constr_SEQUENCE.c
@@ -1078,7 +1078,7 @@
* Get the sequence ROOT elements.
*/
for(edx = 0; edx < ((specs->ext_before < 0)
- ? td->elements_count : specs->ext_before + 1); edx++) {
+ ? td->elements_count : specs->ext_before - 1); edx++) {
asn_TYPE_member_t *elm = &td->elements[edx];
void *memb_ptr; /* Pointer to the member */
void **memb_ptr2; /* Pointer to that pointer */
@@ -1219,7 +1219,7 @@
* Get the sequence ROOT elements.
*/
for(edx = 0; edx < ((specs->ext_before < 0)
- ? td->elements_count : specs->ext_before + 1); edx++) {
+ ? td->elements_count : specs->ext_before - 1); edx++) {
asn_TYPE_member_t *elm = &td->elements[edx];
void *memb_ptr; /* Pointer to the member */
void **memb_ptr2; /* Pointer to that pointer */