assert(obstack && (nelts >= 0));
- dp = obstack_alloc(obstack, ARR_ELTS_OFFS + elts_size);
+ dp = (ir_arr_descr*) obstack_alloc(obstack, ARR_ELTS_OFFS + elts_size);
ARR_SET_DBGINF(dp, ARR_D_MAGIC, elts_size/nelts);
dp->u.obstack = obstack;
dp->nelts = nelts;
*/
void *ir_new_arr_f(int nelts, size_t elts_size)
{
- ir_arr_descr *new;
+ ir_arr_descr *newa;
assert (nelts >= 0);
- new = xmalloc (ARR_ELTS_OFFS+elts_size);
- ARR_SET_DBGINF (new, ARR_F_MAGIC, nelts ? elts_size/nelts : 0);
- new->u.allocated = new->nelts = nelts;
- return new->v.elts;
+ newa = (ir_arr_descr*) xmalloc (ARR_ELTS_OFFS+elts_size);
+ ARR_SET_DBGINF (newa, ARR_F_MAGIC, nelts ? elts_size/nelts : 0);
+ newa->u.allocated = newa->nelts = nelts;
+ return newa->v.elts;
}
/**
assert (dp->magic == ARR_F_MAGIC);
#ifndef NDEBUG
- {
- ir_arr_descr *wdp = (ir_arr_descr *)dp;
- wdp->magic = 0xdeadbeef;
- }
+ dp->magic = 0xdeadbeef;
#endif
free(dp);
}
ARR_VRFY (elts);
assert (!dp->eltsize || !nelts || (dp->eltsize == elts_size/nelts));
- dp = xrealloc (dp, ARR_ELTS_OFFS+elts_size);
+ dp = (ir_arr_descr*) xrealloc (dp, ARR_ELTS_OFFS+elts_size);
dp->u.allocated = dp->nelts = nelts;
return dp->v.elts;
assert(n >= nelts);
if (n != dp->u.allocated) {
- dp = xrealloc(dp, ARR_ELTS_OFFS+eltsize*n);
+ dp = (ir_arr_descr*) xrealloc(dp, ARR_ELTS_OFFS+eltsize*n);
dp->u.allocated = n;
-#if defined(DEBUG) && defined(HAVE_GNU_MALLOC)
- } else {
- tmalloc_tag = NULL;
-#endif
}
dp->nelts = nelts;
* Do NOT use is in code, use ARR_LEN() macro!
* This function is intended to be called from a debugger.
*/
+int array_len(const void *arr);
int array_len(const void *arr)
{
return ARR_LEN(arr);
* Do NOT use is in code!.
* This function is intended to be called from a debugger.
*/
+ir_arr_descr *array_descr(const void *arr);
ir_arr_descr *array_descr(const void *arr)
{
if (! arr)