do not allow malloc(0)
parent
10718557a2
commit
e7856a1afc
|
@ -105,7 +105,7 @@ __global nr_mallocs int = 0
|
|||
|
||||
[unsafe_fn]
|
||||
pub fn malloc(n int) byteptr {
|
||||
if n < 0 {
|
||||
if n <= 0 {
|
||||
panic('malloc(<0)')
|
||||
}
|
||||
$if prealloc {
|
||||
|
|
|
@ -1126,6 +1126,9 @@ pub fn (s []string) join_lines() string {
|
|||
|
||||
// reverse will return a new reversed string.
|
||||
pub fn (s string) reverse() string {
|
||||
if s.len == 0 {
|
||||
return ''
|
||||
}
|
||||
mut res := string {
|
||||
len: s.len
|
||||
str: malloc(s.len)
|
||||
|
|
|
@ -24,7 +24,11 @@ const (
|
|||
* NB: if you need to decode many strings repeatedly, take a look at decode_in_buffer too.
|
||||
*/
|
||||
pub fn decode(data string) string {
|
||||
buffer := malloc( data.len * 3 / 4 )
|
||||
size := data.len * 3 / 4
|
||||
if size <= 0 {
|
||||
return ''
|
||||
}
|
||||
buffer := malloc(size)
|
||||
return tos(buffer, decode_in_buffer(data, buffer) )
|
||||
}
|
||||
|
||||
|
@ -36,7 +40,11 @@ pub fn decode(data string) string {
|
|||
* NB: if you need to encode many strings repeatedly, take a look at encode_in_buffer too.
|
||||
*/
|
||||
pub fn encode(data string) string {
|
||||
buffer := malloc( 4 * ((data.len + 2) / 3) )
|
||||
size := 4 * ((data.len + 2) / 3)
|
||||
if size <= 0 {
|
||||
return ''
|
||||
}
|
||||
buffer := malloc(size)
|
||||
return tos(buffer, encode_in_buffer(data, buffer))
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue