projects
/
mono.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4894836
)
Fix MSVC compiler specific issues in lock-free-alloc.c
author
Jonathan Chambers
<joncham@gmail.com>
Fri, 31 Aug 2012 02:08:23 +0000
(22:08 -0400)
committer
Jonathan Chambers
<joncham@gmail.com>
Fri, 31 Aug 2012 02:08:23 +0000
(22:08 -0400)
mono/utils/lock-free-alloc.c
patch
|
blob
|
history
diff --git
a/mono/utils/lock-free-alloc.c
b/mono/utils/lock-free-alloc.c
index 72b762247ba446495945d82b5e5ef2f797db4b5c..4c95990ddee397a9d853ed086f97ee8e5e2d086e 100644
(file)
--- a/
mono/utils/lock-free-alloc.c
+++ b/
mono/utils/lock-free-alloc.c
@@
-374,7
+374,7
@@
alloc_from_active_or_partial (MonoLockFreeAllocator *heap)
do {
unsigned int next;
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);
if (old_anchor.data.state == STATE_EMPTY) {
/* We must free it because we own it. */
desc_retire (desc);
@@
-477,7
+477,7
@@
mono_lock_free_free (gpointer ptr)
g_assert (SB_HEADER_FOR_ADDR (ptr) == SB_HEADER_FOR_ADDR (sb));
do {
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);
*(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);
@@
-531,7
+531,11
@@
descriptor_check_consistency (Descriptor *desc, gboolean print)
{
int count = desc->anchor.data.count;
int max_count = 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];
gboolean linked [max_count];
+#endif
int i, last;
unsigned int index;
int i, last;
unsigned int index;