[macruby-changes] [191] MacRuby/trunk/gc.c
source_changes at macosforge.org
source_changes at macosforge.org
Sun May 11 13:36:14 PDT 2008
Revision: 191
http://trac.macosforge.org/projects/ruby/changeset/191
Author: lsansonetti at apple.com
Date: 2008-05-11 13:36:13 -0700 (Sun, 11 May 2008)
Log Message:
-----------
fixed build
Modified Paths:
--------------
MacRuby/trunk/gc.c
Modified: MacRuby/trunk/gc.c
===================================================================
--- MacRuby/trunk/gc.c 2008-05-11 00:16:55 UTC (rev 190)
+++ MacRuby/trunk/gc.c 2008-05-11 20:36:13 UTC (rev 191)
@@ -36,7 +36,7 @@
#endif
#if WITH_OBJC
-# if 1//HAVE_AUTO_ZONE_H
+# if HAVE_AUTO_ZONE_H
# include <auto_zone.h>
# else
# include <malloc/malloc.h>
@@ -62,9 +62,14 @@
void *);
extern void *auto_zone_get_associative_ref(auto_zone_t *, void *, void *);
extern auto_zone_t *auto_zone(void);
+typedef struct auto_zone_cursor *auto_zone_cursor_t;
+typedef void (*auto_zone_foreach_object_t) (auto_zone_cursor_t cursor,
+ void (*op) (void *ptr, void *data), void* data);
typedef struct {
uint32_t unused1;
- void *unused2;
+ void (*batch_invalidate) (auto_zone_t *zone,
+ auto_zone_foreach_object_t foreach, auto_zone_cursor_t cursor,
+ size_t cursor_size);
void *unused3;
void *unused4;
void *unused5;
@@ -2682,8 +2687,8 @@
*/
#if WITH_OBJC
-static void (*old_batch_invalidate)(auto_zone_t *, auto_zone_foreach_object_t,
- auto_zone_cursor_t, size_t);
+static void (*old_batch_invalidate)(auto_zone_t *,
+ auto_zone_foreach_object_t, auto_zone_cursor_t, size_t);
static void
__rb_objc_finalize(void *obj, void *data)
@@ -2713,17 +2718,21 @@
Init_PreGC(void)
{
#if WITH_OBJC
+ auto_collection_control_t *control;
+
__auto_zone = auto_zone();
//auto_zone_register_thread(__auto_zone);
finalizer_table = st_init_strtable();
GC_ROOT(&finalizer_table);
- auto_collection_parameters(__auto_zone)->scan_external_callout =
+
+ control = auto_collection_parameters(__auto_zone);
+ control->scan_external_callout =
rb_objc_scan_external_callout;
if (getenv("GC_DEBUG"))
- auto_collection_parameters(__auto_zone)->log =
- AUTO_LOG_COLLECTIONS | AUTO_LOG_REGIONS | AUTO_LOG_UNUSUAL;
- old_batch_invalidate = auto_collection_parameters(__auto_zone)->batch_invalidate;
- auto_collection_parameters(__auto_zone)->batch_invalidate = rb_objc_batch_invalidate;
+ control->log = AUTO_LOG_COLLECTIONS | AUTO_LOG_REGIONS
+ | AUTO_LOG_UNUSUAL;
+ old_batch_invalidate = control->batch_invalidate;
+ control->batch_invalidate = rb_objc_batch_invalidate;
#endif
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080511/3a28663f/attachment.html
More information about the macruby-changes
mailing list