RPA Toolkit
rharray fixes
authorMartin Stoilov <martin@rpasearch.com>
Mon, 28 Mar 2011 05:19:38 +0000 (22:19 -0700)
committerMartin Stoilov <martin@rpasearch.com>
Mon, 28 Mar 2011 05:19:38 +0000 (22:19 -0700)
arch/linux/x86_64/rtypes.h
rlib/rharray.c
rpa1/rpamnode.c
rvm/rvmcpu.h
tests/rpagen-test.c

index 214a056..d509170 100644 (file)
@@ -65,7 +65,7 @@ typedef struct {ruint32 p1; ruint32 p2;} rpair_t;
 
 
 #define R_DEBUG_BRAKE __asm__ ("int $3")
-#define ASSERT(__a__) do {if (!(__a__)) R_DEBUG_BRAKE; } while (0)
+#define R_ASSERT(__a__) do {if (!(__a__)) R_DEBUG_BRAKE; } while (0)
 #define R_SIZE_ALIGN(s, n) ((((s) + (n) - 1) / (n)) * (n))
 #define R_MIN(a, b) ((a) < (b) ? (a): (b))
 #define R_MAX(a, b) ((a) > (b) ? (a): (b))
index fb0aeec..7c56496 100644 (file)
@@ -117,11 +117,17 @@ void r_harray_cleanup(robject_t *obj)
 rlong r_harray_add(rharray_t *harray, const rchar *name, ruint namesize, rconstpointer pval)
 {
        rstr_t *membrName;
-       rlong index;
+       rlong index, nameindex;
 
        membrName = r_rstrdup(name, namesize);
        index = r_carray_add(harray->members, pval);
-       r_array_add(harray->names, &membrName);
+       nameindex = r_array_add(harray->names, &membrName);
+       /*
+        * Lets try to keep the name index and the data index in sync,
+        * if they are not, that might be a problem - we will have to
+        * think of some sort reverse lookup mechanism.
+        */
+       R_ASSERT(index == nameindex);
        r_hash_insert_indexval(harray->hash, (rconstpointer)membrName, index);
        return index;
 }
index f2c04ad..4c8da65 100644 (file)
@@ -697,7 +697,7 @@ int rpa_mnode_p_callback_plain(rpa_mnode_t *mnode, rpa_stat_t *stat, const char
                                 * If the callbacks are not disabled we can also set the cache for the cases when they are disabled.
                                 */
                                if (!stat->cbmod) {
-                                       ASSERT(&stat->mcache[RPA_MCACHEHASH(match, input, 1)] != mcache);
+                                       R_ASSERT(&stat->mcache[RPA_MCACHEHASH(match, input, 1)] != mcache);
                                        RPA_MCACHE_SET(&stat->mcache[RPA_MCACHEHASH(match, input, 1)], match, input, ret, 1);
                                }
                        } else {
index 3b75557..f9155bf 100644 (file)
@@ -235,7 +235,7 @@ do { \
 
 
 #define RVM_STACK_CHUNK 256
-#define RVM_ABORT(__cpu__, __e__) do { __cpu__->error = (__e__); (__cpu__)->abort = 1; ASSERT(0); return; } while (0)
+#define RVM_ABORT(__cpu__, __e__) do { __cpu__->error = (__e__); (__cpu__)->abort = 1; R_ASSERT(0); return; } while (0)
 #define BIT(__shiftby__) (1 << (__shiftby__))
 #define BITR(__f__, __l__, __r__) (((__r__) >= (__f__) && (__r__) <= (__l__)) ? BIT(__r__) : 0)
 #define BITS(__f__, __l__)  (BITR(__f__, __l__, R0)) | (BITR(__f__, __l__, R1)) | (BITR(__f__, __l__, R2)) | (BITR(__f__, __l__, R3)) | \
index 928288d..09754c2 100644 (file)
@@ -1068,7 +1068,7 @@ int codegen_newexpressioncallop_callback(rpa_stat_handle stat, const char *name,
                 * We should never get here
                 */
                r_array_removelast(co->funcall);
-               ASSERT(0);
+               R_ASSERT(0);
        }
 
 
@@ -1124,7 +1124,7 @@ int codegen_funcallexpression_callback(rpa_stat_handle stat, const char *name, v
                 * We should never get here
                 */
                r_array_removelast(co->funcall);
-               ASSERT(0);
+               R_ASSERT(0);
        }
        codegen_print_callback(stat, name, userdata, input, size, reason);
        codegen_dump_code(rvm_codegen_getcode(co->cg, off), rvm_codegen_getcodesize(co->cg) - off);