diff options
Diffstat (limited to 'io_buffer.c')
| -rw-r--r-- | io_buffer.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/io_buffer.c b/io_buffer.c index faa5304248..d9f50fc234 100644 --- a/io_buffer.c +++ b/io_buffer.c @@ -3625,6 +3625,10 @@ io_buffer_and_inplace(VALUE self, VALUE mask) size_t size; io_buffer_get_bytes_for_writing(buffer, &base, &size); + const void *mask_base; + size_t mask_size; + io_buffer_get_bytes_for_reading(mask_buffer, &mask_base, &mask_size); + memory_and_inplace(base, size, mask_buffer->base, mask_buffer->size); return self; @@ -3671,6 +3675,10 @@ io_buffer_or_inplace(VALUE self, VALUE mask) size_t size; io_buffer_get_bytes_for_writing(buffer, &base, &size); + const void *mask_base; + size_t mask_size; + io_buffer_get_bytes_for_reading(mask_buffer, &mask_base, &mask_size); + memory_or_inplace(base, size, mask_buffer->base, mask_buffer->size); return self; @@ -3717,6 +3725,10 @@ io_buffer_xor_inplace(VALUE self, VALUE mask) size_t size; io_buffer_get_bytes_for_writing(buffer, &base, &size); + const void *mask_base; + size_t mask_size; + io_buffer_get_bytes_for_reading(mask_buffer, &mask_base, &mask_size); + memory_xor_inplace(base, size, mask_buffer->base, mask_buffer->size); return self; |
