[svn:parrot] r48335 - branches/unshared_buffers/src/string/encoding
darbelo at svn.parrot.org
darbelo at svn.parrot.org
Fri Aug 6 21:17:27 UTC 2010
Author: darbelo
Date: Fri Aug 6 21:17:27 2010
New Revision: 48335
URL: https://trac.parrot.org/parrot/changeset/48335
Log:
Disable shared buffers in substring operations.
Modified:
branches/unshared_buffers/src/string/encoding/fixed_8.c
branches/unshared_buffers/src/string/encoding/ucs2.c
branches/unshared_buffers/src/string/encoding/utf16.c
branches/unshared_buffers/src/string/encoding/utf8.c
Modified: branches/unshared_buffers/src/string/encoding/fixed_8.c
==============================================================================
--- branches/unshared_buffers/src/string/encoding/fixed_8.c Fri Aug 6 21:06:40 2010 (r48334)
+++ branches/unshared_buffers/src/string/encoding/fixed_8.c Fri Aug 6 21:17:27 2010 (r48335)
@@ -320,18 +320,9 @@
get_bytes(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(get_bytes)
- STRING * const return_string = Parrot_str_copy(interp, src);
- return_string->encoding = src->encoding;
- return_string->charset = src->charset;
-
- return_string->strstart = (char *)return_string->strstart + offset ;
- return_string->bufused = count;
-
- return_string->strlen = count;
- return_string->hashval = 0;
-
- return return_string;
+ return Parrot_str_new_init(interp, src->strstart + offset, count,
+ src->encoding, src->charset, PObj_get_FLAGS(src));
}
@@ -527,4 +518,3 @@
* End:
* vim: expandtab shiftwidth=4:
*/
-
Modified: branches/unshared_buffers/src/string/encoding/ucs2.c
==============================================================================
--- branches/unshared_buffers/src/string/encoding/ucs2.c Fri Aug 6 21:06:40 2010 (r48334)
+++ branches/unshared_buffers/src/string/encoding/ucs2.c Fri Aug 6 21:17:27 2010 (r48335)
@@ -313,27 +313,15 @@
get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(get_codepoints)
- STRING * const return_string = Parrot_str_copy(interp, src);
-
#if PARROT_HAS_ICU
- return_string->strstart = (char*)src->strstart + offset * sizeof (UChar);
- return_string->bufused = count * sizeof (UChar);
+ return Parrot_str_new_init(interp, src->strstart + offset * sizeof (UChar),
+ count * sizeof (UChar), src->encoding, src->charset, PObj_get_FLAGS(src));
#else
- {
- String_iter iter;
- UINTVAL start;
-
- iter_init(interp, src, &iter);
- iter.set_position(interp, &iter, offset);
- start = iter.bytepos;
- return_string->strstart = (char *)return_string->strstart + start;
- iter.set_position(interp, &iter, offset + count);
- return_string->bufused = iter.bytepos - start;
- }
+ UNUSED(src);
+ UNUSED(offset);
+ UNUSED(count);
+ no_ICU_lib(interp);
#endif
- return_string->strlen = count;
- return_string->hashval = 0;
- return return_string;
}
/*
Modified: branches/unshared_buffers/src/string/encoding/utf16.c
==============================================================================
--- branches/unshared_buffers/src/string/encoding/utf16.c Fri Aug 6 21:06:40 2010 (r48334)
+++ branches/unshared_buffers/src/string/encoding/utf16.c Fri Aug 6 21:17:27 2010 (r48335)
@@ -379,17 +379,14 @@
ASSERT_ARGS(get_codepoints)
String_iter iter;
UINTVAL start;
- STRING * const return_string = Parrot_str_copy(interp, src);
iter_init(interp, src, &iter);
iter.set_position(interp, &iter, offset);
start = iter.bytepos;
- return_string->strstart = (char *)return_string->strstart + start ;
iter.set_position(interp, &iter, offset + count);
- return_string->bufused = iter.bytepos - start;
- return_string->strlen = count;
- return_string->hashval = 0;
- return return_string;
+
+ return Parrot_str_new_init(interp, src->strstart + start, iter.bytepos - start,
+ src->encoding, src->charset, PObj_get_FLAGS(src));
}
Modified: branches/unshared_buffers/src/string/encoding/utf8.c
==============================================================================
--- branches/unshared_buffers/src/string/encoding/utf8.c Fri Aug 6 21:06:40 2010 (r48334)
+++ branches/unshared_buffers/src/string/encoding/utf8.c Fri Aug 6 21:17:27 2010 (r48335)
@@ -678,8 +678,6 @@
get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(get_codepoints)
-
- STRING * const return_string = Parrot_str_copy(interp, src);
String_iter iter;
UINTVAL start;
@@ -689,16 +687,12 @@
iter.set_position(interp, &iter, offset);
start = iter.bytepos;
- return_string->strstart = (char *)return_string->strstart + start;
if (count)
iter.set_position(interp, &iter, offset + count);
- return_string->bufused = iter.bytepos - start;
- return_string->strlen = count;
- return_string->hashval = 0;
-
- return return_string;
+ return Parrot_str_new_init(interp, src->strstart + start, iter.bytepos - start,
+ src->encoding, src->charset, PObj_get_FLAGS(src));
}
/*
@@ -717,15 +711,8 @@
get_bytes(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(get_bytes)
- STRING * const return_string = Parrot_str_copy(interp, src);
-
- return_string->strstart = (char *)return_string->strstart + offset ;
- return_string->bufused = count;
-
- return_string->strlen = count;
- return_string->hashval = 0;
-
- return return_string;
+ return Parrot_str_new_init(interp, src->strstart + offset, count,
+ src->encoding, src->charset, PObj_get_FLAGS(src));
}
More information about the parrot-commits
mailing list