do {
unsigned int next;
- new_anchor = old_anchor = (Anchor)*(volatile gint32*)&desc->anchor.value;
+ new_anchor = old_anchor = *(volatile Anchor*)&desc->anchor.value;
if (old_anchor.data.state == STATE_EMPTY) {
/* We must free it because we own it. */
desc_retire (desc);
g_assert (SB_HEADER_FOR_ADDR (ptr) == SB_HEADER_FOR_ADDR (sb));
do {
- new_anchor = old_anchor = (Anchor)*(volatile gint32*)&desc->anchor.value;
+ new_anchor = old_anchor = *(volatile Anchor*)&desc->anchor.value;
*(unsigned int*)ptr = old_anchor.data.avail;
new_anchor.data.avail = ((char*)ptr - (char*)sb) / desc->slot_size;
g_assert (new_anchor.data.avail < SB_USABLE_SIZE / desc->slot_size);
{
int count = desc->anchor.data.count;
int max_count = SB_USABLE_SIZE / desc->slot_size;
+#if _MSC_VER
+ gboolean* linked = alloca(max_count*sizeof(gboolean));
+#else
gboolean linked [max_count];
+#endif
int i, last;
unsigned int index;