[macruby-changes] [705] MacRuby/trunk/io.c
source_changes at macosforge.org
source_changes at macosforge.org
Sun Nov 2 22:56:04 PST 2008
Revision: 705
http://trac.macosforge.org/projects/ruby/changeset/705
Author: lsansonetti at apple.com
Date: 2008-11-02 22:56:04 -0800 (Sun, 02 Nov 2008)
Log Message:
-----------
fixed a bug with io_fwrite where bytestrings would be created too late
Modified Paths:
--------------
MacRuby/trunk/io.c
Modified: MacRuby/trunk/io.c
===================================================================
--- MacRuby/trunk/io.c 2008-11-03 05:21:14 UTC (rev 704)
+++ MacRuby/trunk/io.c 2008-11-03 06:56:04 UTC (rev 705)
@@ -690,6 +690,7 @@
io_fwrite(VALUE str, rb_io_t *fptr)
{
long len, n, r, l, offset = 0;
+ void *cstr;
/*
* If an external encoding was specified and it differs from
@@ -711,6 +712,7 @@
}
}
+ cstr = (void *)RSTRING_PTR(str); /* generate bytestring if needed */
len = RSTRING_LEN(str);
if ((n = len) <= 0) {
return n;
@@ -729,7 +731,7 @@
MEMMOVE(fptr->wbuf, fptr->wbuf+fptr->wbuf_off, char, fptr->wbuf_len);
fptr->wbuf_off = 0;
}
- MEMMOVE(fptr->wbuf+fptr->wbuf_off+fptr->wbuf_len, RSTRING_PTR(str)+offset, char, len);
+ MEMMOVE(fptr->wbuf+fptr->wbuf_off+fptr->wbuf_len, cstr+offset, char, len);
fptr->wbuf_len += len;
n = 0;
}
@@ -752,7 +754,7 @@
wsplit_p(fptr)) {
l = PIPE_BUF;
}
- r = rb_write_internal(fptr->fd, ((char *)RSTRING_PTR(str))+offset, l);
+ r = rb_write_internal(fptr->fd, cstr+offset, l);
/* xxx: other threads may modify given string. */
if (r == n) {
return len;
@@ -775,7 +777,7 @@
MEMMOVE(fptr->wbuf, fptr->wbuf+fptr->wbuf_off, char, fptr->wbuf_len);
fptr->wbuf_off = 0;
}
- MEMMOVE(fptr->wbuf+fptr->wbuf_off+fptr->wbuf_len, RSTRING_PTR(str)+offset, char, len);
+ MEMMOVE(fptr->wbuf+fptr->wbuf_off+fptr->wbuf_len, cstr+offset, char, len);
fptr->wbuf_len += len;
return len;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20081102/3cb36b9f/attachment.html>
More information about the macruby-changes
mailing list