/* -*- c -*- */
/*
- * Time-stamp: <23.11.2004 13:26:21h liekweg>
+ * Time-stamp: <26.11.2004 16:53:35h liekweg>
* Project: libFIRM
* File name: ir/ana2/qset.c
* Purpose: yet another set implementation
memcpy (values, qset->values, qset->n_elems * sizeof (sortable_t));
memset (qset->values, 0x00, qset->n_elems * sizeof (sortable_t)); /* debug only */
- free (qset->values);
+
+ if (NULL == qset->obst) {
+ free (qset->values);
+ }
qset->values = values;
qset->n_slots = new_size;
*/
void qset_compact (qset_t *qset)
{
- sortable_t *values = (sortable_t*) mix_malloc (qset->obst,
- qset->n_elems * sizeof (sortable_t));
- memcpy (values, qset->values, qset->n_elems * sizeof (sortable_t));
+ if (NULL == qset->obst) {
+ sortable_t *values = (sortable_t*) mix_malloc (qset->obst,
+ qset->n_elems * sizeof (sortable_t));
+ memcpy (values, qset->values, qset->n_elems * sizeof (sortable_t));
- memset (qset->values, 0x00, qset->n_elems * sizeof (sortable_t));
- free (qset->values);
+ memset (qset->values, 0x00, qset->n_elems * sizeof (sortable_t));
- qset->values = values;
- qset->n_slots = qset->n_elems;
+ free (qset->values);
+
+ qset->values = values;
+ qset->n_slots = qset->n_elems;
+ }
}
/*
qset_sort (qset1);
memset (values, 0x00, n_elems * sizeof (sortable_t));
- free (values);
+
+ if (NULL == qset1->obst) {
+ free (values);
+ }
}
/*
/*
$Log$
+ Revision 1.6 2004/11/26 15:58:30 liekweg
+ don't free inside obstacks (thx, michael)
+
Revision 1.5 2004/11/24 14:53:56 liekweg
Bugfixes