aboutsummaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-05-01 00:35:02 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-05-01 00:35:02 +0000
commitabaac4d0e0918af24b501b5dcec482fb35e63724 (patch)
tree6bba2e32b0b37a0e4f1f12d3ac51cc3f99700240 /ext
parent4daeff79b502ff980c494e142afc5d3e748fed62 (diff)
downloadruby-abaac4d0e0918af24b501b5dcec482fb35e63724.tar.gz
zlib.c: zstream_buffer_ungetbyte
* ext/zlib/zlib.c (zstream_buffer_ungetbyte): simplify by using zstream_buffer_ungets(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r--ext/zlib/zlib.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c
index 096218b496..64a480cfed 100644
--- a/ext/zlib/zlib.c
+++ b/ext/zlib/zlib.c
@@ -829,17 +829,8 @@ zstream_buffer_ungets(struct zstream *z, const Bytef *b, unsigned long len)
static void
zstream_buffer_ungetbyte(struct zstream *z, int c)
{
- if (NIL_P(z->buf) || RSTRING_LEN(z->buf) - z->buf_filled == 0) {
- zstream_expand_buffer(z);
- }
-
- memmove(RSTRING_PTR(z->buf) + 1, RSTRING_PTR(z->buf), z->buf_filled);
- RSTRING_PTR(z->buf)[0] = (char)c;
- z->buf_filled++;
- if (z->stream.avail_out > 0) {
- z->stream.next_out++;
- z->stream.avail_out--;
- }
+ Bytef cc = (Bytef)c;
+ zstream_buffer_ungets(z, &cc, 1);
}
static void