summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--stream.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index b013dfe8..9a9419fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2015-08-04 Kaz Kylheku <kaz@kylheku.com>
+ * stream.c (string_out_put_string): Do not return nil when
+ buffer calculations overflow, but throw exception.
+
+2015-08-04 Kaz Kylheku <kaz@kylheku.com>
+
Remove useless return values and checks.
* stream.c (vformat_align_pre, vformat_align_post): Change to void
diff --git a/stream.c b/stream.c
index f612cefb..cf1f5a96 100644
--- a/stream.c
+++ b/stream.c
@@ -1490,12 +1490,12 @@ static val string_out_put_string(val stream, val str)
size_t required_size = len + so->fill + 1;
if (required_size < len)
- return nil;
+ goto oflow;
while (so->size <= required_size) {
so->size *= 2;
if (so->size < old_size)
- return nil;
+ goto oflow;
}
if (so->size != old_size)
@@ -1505,6 +1505,8 @@ static val string_out_put_string(val stream, val str)
wmemcpy(so->buf + so->fill, s, len + 1);
so->fill += len;
return t;
+oflow:
+ uw_throw(error_s, lit("string output stream overflow"));
}
}