all: use v_realloc

pull/5801/head
Alexander Medvednikov 2020-07-11 12:37:51 +02:00
parent 867929e0b4
commit 649821be4c
4 changed files with 11 additions and 11 deletions

View File

@ -102,7 +102,7 @@ fn (mut a array) ensure_cap(required int) {
a.data = vcalloc(cap * a.element_size) a.data = vcalloc(cap * a.element_size)
} }
else { else {
a.data = C.realloc(a.data, cap * a.element_size) a.data = v_realloc(a.data, u32(cap * a.element_size))
} }
a.cap = cap a.cap = cap
} }

View File

@ -166,7 +166,7 @@ TODO
} }
[unsafe_fn] [unsafe_fn]
pub fn v_realloc(b byteptr, n int) byteptr { pub fn v_realloc(b byteptr, n u32) byteptr {
ptr := C.realloc(b, n) ptr := C.realloc(b, n)
if ptr == 0 { if ptr == 0 {
panic('realloc($n) failed') panic('realloc($n) failed')

View File

@ -122,8 +122,8 @@ fn new_dense_array(value_bytes int) DenseArray {
fn (mut d DenseArray) push(key string, value voidptr) u32 { fn (mut d DenseArray) push(key string, value voidptr) u32 {
if d.cap == d.len { if d.cap == d.len {
d.cap += d.cap >> 3 d.cap += d.cap >> 3
d.keys = &string(C.realloc(d.keys, sizeof(string) * d.cap)) d.keys = &string(v_realloc(d.keys, sizeof(string) * d.cap))
d.values = C.realloc(d.values, u32(d.value_bytes) * d.cap) d.values = v_realloc(d.values, u32(d.value_bytes) * d.cap)
} }
push_index := d.len push_index := d.len
d.keys[push_index] = key d.keys[push_index] = key
@ -168,8 +168,8 @@ fn (mut d DenseArray) zeros_to_end() {
d.deletes = 0 d.deletes = 0
d.len = count d.len = count
d.cap = if count < 8 { u32(8) } else { count } d.cap = if count < 8 { u32(8) } else { count }
d.keys = &string(C.realloc(d.keys, sizeof(string) * d.cap)) d.keys = &string(v_realloc(d.keys, sizeof(string) * d.cap))
d.values = C.realloc(d.values, u32(d.value_bytes) * d.cap) d.values = v_realloc(d.values, u32(d.value_bytes) * d.cap)
} }
pub struct map { pub struct map {
@ -267,7 +267,7 @@ fn (mut m map) ensure_extra_metas(probe_count u32) {
m.extra_metas += extra_metas_inc m.extra_metas += extra_metas_inc
mem_size := (m.cap + 2 + m.extra_metas) mem_size := (m.cap + 2 + m.extra_metas)
unsafe { unsafe {
m.metas = &u32(C.realloc(m.metas, sizeof(u32) * mem_size)) m.metas = &u32(v_realloc(m.metas, sizeof(u32) * mem_size))
C.memset(m.metas + mem_size - extra_metas_inc, 0, sizeof(u32) * extra_metas_inc) C.memset(m.metas + mem_size - extra_metas_inc, 0, sizeof(u32) * extra_metas_inc)
} }
// Should almost never happen // Should almost never happen
@ -328,7 +328,7 @@ fn (mut m map) expand() {
// the max_load_factor in an operation. // the max_load_factor in an operation.
fn (mut m map) rehash() { fn (mut m map) rehash() {
meta_bytes := sizeof(u32) * (m.cap + 2 + m.extra_metas) meta_bytes := sizeof(u32) * (m.cap + 2 + m.extra_metas)
m.metas = &u32(C.realloc(m.metas, meta_bytes)) m.metas = &u32(v_realloc(m.metas, meta_bytes))
C.memset(m.metas, 0, meta_bytes) C.memset(m.metas, 0, meta_bytes)
for i := u32(0); i < m.key_values.len; i++ { for i := u32(0); i < m.key_values.len; i++ {
if m.key_values.keys[i].str == 0 { if m.key_values.keys[i].str == 0 {

View File

@ -280,7 +280,7 @@ pub fn (mut ws Client) write(payload byteptr, payload_len int, code OPCode) int
goto free_data goto free_data
return -1 return -1
} }
unsafe unsafe
{ {
C.memcpy(fbdata, header.data, header_len) C.memcpy(fbdata, header.data, header_len)
C.memcpy(fbdata + header_len, payload, payload_len) C.memcpy(fbdata + header_len, payload, payload_len)
@ -385,7 +385,7 @@ pub fn (mut ws Client) read() int {
frame_size = u64(header_len) + payload_len frame_size = u64(header_len) + payload_len
if frame_size > initial_buffer { if frame_size > initial_buffer {
l.d('reallocating: ${frame_size}') l.d('reallocating: ${frame_size}')
data = C.realloc(data, frame_size) data = v_realloc(data, frame_size)
} }
} else if frame.payload_len == u64(127) && bytes_read == u64(extended_payload64_end_byte) { } else if frame.payload_len == u64(127) && bytes_read == u64(extended_payload64_end_byte) {
header_len += 8 // TODO Not sure... header_len += 8 // TODO Not sure...
@ -409,7 +409,7 @@ pub fn (mut ws Client) read() int {
frame_size = u64(header_len) + payload_len frame_size = u64(header_len) + payload_len
if frame_size > initial_buffer { if frame_size > initial_buffer {
l.d('reallocating: ${frame_size}') l.d('reallocating: ${frame_size}')
data = C.realloc(data, frame_size) data = v_realloc(data, frame_size)
} }
} }
} }