StaticDataFreeList *next;
guint32 offset;
guint32 size;
+ gint32 align;
};
typedef struct {
}
static StaticDataFreeList*
-search_slot_in_freelist (StaticDataInfo *static_data, guint32 size, guint32 align)
+search_slot_in_freelist (StaticDataInfo *static_data, guint32 size, gint32 align)
{
StaticDataFreeList* prev = NULL;
StaticDataFreeList* tmp = static_data->freelist;
while (tmp) {
- if (tmp->size == size) {
+ if (tmp->size == size && tmp->align == align) {
if (prev)
prev->next = tmp->next;
else
}
static void
-do_free_special_slot (guint32 offset, guint32 size)
+do_free_special_slot (guint32 offset, guint32 size, gint32 align)
{
guint32 static_type = ACCESS_SPECIAL_STATIC_OFFSET (offset, type);
MonoBitSet **sets;
item->offset = offset;
item->size = size;
+ item->align = align;
item->next = info->freelist;
info->freelist = item;
gint32 align;
guint32 size;
size = mono_type_size (field->type, &align);
- do_free_special_slot (offset, size);
+ do_free_special_slot (offset, size, align);
}
void