Index: src/api.cc |
=================================================================== |
--- src/api.cc (revision 5999) |
+++ src/api.cc (working copy) |
@@ -3127,14 +3127,15 @@ |
// using StringInputBuffer or Get(i) to access the characters. |
str->TryFlatten(); |
} |
- int end = length; |
- if ( (length == -1) || (length > str->length() - start) ) |
- end = str->length() - start; |
+ int end = start + length; |
+ if ((length == -1) || (length > str->length() - start) ) |
+ end = str->length(); |
if (end < 0) return 0; |
i::String::WriteToFlat(*str, buffer, start, end); |
- if (length == -1 || end < length) |
- buffer[end] = '\0'; |
- return end; |
+ if (length == -1 || end - start < length) { |
+ buffer[end - start] = '\0'; |
+ } |
+ return end - start; |
} |