[macruby-changes] [225] MacRuby/trunk/ext/syck

source_changes at macosforge.org source_changes at macosforge.org
Mon May 26 21:53:23 PDT 2008


Revision: 225
          http://trac.macosforge.org/projects/ruby/changeset/225
Author:   lsansonetti at apple.com
Date:     2008-05-26 21:53:22 -0700 (Mon, 26 May 2008)

Log Message:
-----------
more missing write barriers, cleaning some warnings

Modified Paths:
--------------
    MacRuby/trunk/ext/syck/implicit.c
    MacRuby/trunk/ext/syck/rubyext.c
    MacRuby/trunk/ext/syck/syck.c
    MacRuby/trunk/ext/syck/syck.h

Modified: MacRuby/trunk/ext/syck/implicit.c
===================================================================
--- MacRuby/trunk/ext/syck/implicit.c	2008-05-27 04:33:25 UTC (rev 224)
+++ MacRuby/trunk/ext/syck/implicit.c	2008-05-27 04:53:22 UTC (rev 225)
@@ -1608,7 +1608,7 @@
 }
 
 char *
-syck_type_id_to_uri( char *type_id )
+syck_type_id_to_uri( const char *type_id )
 {
     char *cursor, *limit, *marker;
 

Modified: MacRuby/trunk/ext/syck/rubyext.c
===================================================================
--- MacRuby/trunk/ext/syck/rubyext.c	2008-05-27 04:33:25 UTC (rev 224)
+++ MacRuby/trunk/ext/syck/rubyext.c	2008-05-27 04:53:22 UTC (rev 225)
@@ -177,7 +177,7 @@
         if (rb_respond_to(port, s_binmode)) {
             rb_funcall2(port, s_binmode, 0, 0);
         }
-        syck_parser_str( parser, (char *)port, 0, rb_syck_io_str_read );
+        syck_parser_str( parser, (const char *)port, 0, rb_syck_io_str_read );
     }
     else {
         rb_raise(rb_eTypeError, "instance of IO needed");
@@ -821,10 +821,10 @@
 
     bonus = (struct parser_xtra *)parser->bonus;
     bonus->taint = syck_parser_assign_io(parser, &port);
-    bonus->data = rb_hash_new();
-    bonus->resolver = rb_attr_get( self, s_resolver );
+    GC_WB(&bonus->data, rb_hash_new());
+    GC_WB(&bonus->resolver, rb_attr_get( self, s_resolver ));
     if ( NIL_P( proc ) ) bonus->proc = 0;
-    else                 bonus->proc = proc;
+    else                 GC_WB(&bonus->proc, proc);
 
     return syck_parse( parser );
 }
@@ -848,13 +848,13 @@
     
     bonus = (struct parser_xtra *)parser->bonus;
     bonus->taint = syck_parser_assign_io(parser, &port);
-    bonus->resolver = rb_attr_get( self, s_resolver );
+    GC_WB(&bonus->resolver, rb_attr_get( self, s_resolver ));
     bonus->proc = 0;
 
     while ( 1 )
     {
         /* Reset hash for tracking nodes */
-        bonus->data = rb_hash_new();
+        GC_WB(&bonus->data, rb_hash_new());
 
         /* Parse a document */
         v = syck_parse( parser );
@@ -1885,7 +1885,11 @@
     VALUE pobj;
     SyckEmitter *emitter = syck_new_emitter();
 
+#if WITH_OBJC
+    emitter->bonus = xmalloc( sizeof(struct emitter_xtra) );
+#else
     emitter->bonus = S_ALLOC( struct emitter_xtra );
+#endif
     S_MEMZERO( emitter->bonus, struct emitter_xtra, 1 );
 
     pobj = Data_Wrap_Struct( class, syck_mark_emitter, rb_syck_free_emitter, emitter );
@@ -1910,8 +1914,8 @@
     bonus = (struct emitter_xtra *)emitter->bonus;
 
     bonus->oid = Qnil;
-    bonus->port = rb_str_new2( "" );
-    bonus->data = rb_hash_new();
+    GC_WB(&bonus->port, rb_str_new2( "" ));
+    GC_WB(&bonus->data, rb_hash_new());
 
     if (rb_scan_args(argc, argv, "01", &options) == 0)
     {
@@ -1920,11 +1924,11 @@
     }
     else if ( !NIL_P(tmp = rb_check_string_type(options)) )
     {
-        bonus->port = tmp;
+        GC_WB(&bonus->port, tmp);
     }
     else if ( rb_respond_to( options, s_write ) )
     {
-        bonus->port = options;
+        GC_WB(&bonus->port, options);
     }
     else
     {
@@ -1956,7 +1960,7 @@
     bonus = (struct emitter_xtra *)emitter->bonus;
 
     /* Calculate anchors, normalize nodes, build a simpler symbol table */
-    bonus->oid = oid;
+    GC_WB(&bonus->oid, oid);
     if ( !NIL_P( oid ) && RTEST( rb_funcall( bonus->data, s_haskey, 1, oid ) ) ) {
         symple = rb_hash_aref( bonus->data, oid );
     } else {

Modified: MacRuby/trunk/ext/syck/syck.c
===================================================================
--- MacRuby/trunk/ext/syck/syck.c	2008-05-27 04:33:25 UTC (rev 224)
+++ MacRuby/trunk/ext/syck/syck.c	2008-05-27 04:53:22 UTC (rev 225)
@@ -313,7 +313,7 @@
 }
 
 void
-syck_parser_str( SyckParser *p, char *ptr, long len, SyckIoStrRead read )
+syck_parser_str( SyckParser *p, const char *ptr, long len, SyckIoStrRead read )
 {
     ASSERT( p != NULL );
     free_any_io( p );

Modified: MacRuby/trunk/ext/syck/syck.h
===================================================================
--- MacRuby/trunk/ext/syck/syck.h	2008-05-27 04:33:25 UTC (rev 224)
+++ MacRuby/trunk/ext/syck/syck.h	2008-05-27 04:53:22 UTC (rev 225)
@@ -201,7 +201,7 @@
 
 struct _syck_str {
     /* String buffer pointers */
-    char *beg, *ptr, *end;
+    const char *beg, *ptr, *end;
     /* Function which string -> buffer */
     SyckIoStrRead read;
 };
@@ -351,7 +351,7 @@
 int syck_add_sym( SyckParser *, char * );
 int syck_lookup_sym( SyckParser *, SYMID, char ** );
 int syck_try_implicit( SyckNode * );
-char *syck_type_id_to_uri( char * );
+char *syck_type_id_to_uri( const char * );
 void try_tag_implicit( SyckNode *, int );
 char *syck_match_implicit( char *, size_t );
 
@@ -401,7 +401,7 @@
 void syck_parser_bad_anchor_handler( SyckParser *, SyckBadAnchorHandler );
 void syck_parser_set_input_type( SyckParser *, enum syck_parser_input );
 void syck_parser_file( SyckParser *, FILE *, SyckIoFileRead );
-void syck_parser_str( SyckParser *, char *, long, SyckIoStrRead );
+void syck_parser_str( SyckParser *, const char *, long, SyckIoStrRead );
 void syck_parser_str_auto( SyckParser *, char *, SyckIoStrRead );
 SyckLevel *syck_parser_current_level( SyckParser * );
 void syck_parser_add_level( SyckParser *, int, enum syck_level_status );

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080526/4db81599/attachment-0001.htm 


More information about the macruby-changes mailing list