urllib: a temporary autofree fix

pull/9325/head
Alexander Medvednikov 2021-03-15 21:12:11 +01:00
parent 0823ea4af1
commit 77d5fcca59
2 changed files with 16 additions and 4 deletions

View File

@ -604,10 +604,18 @@ fn (s string) substr2(start int, _end int, end_max bool) string {
// Example: assert 'ABCD'.substr(1,3) == 'BC' // Example: assert 'ABCD'.substr(1,3) == 'BC'
pub fn (s string) substr(start int, end int) string { pub fn (s string) substr(start int, end int) string {
$if !no_bounds_checking ? { $if !no_bounds_checking ? {
/*
$if debug {
if start > end || start > s.len || end > s.len || start < 0 || end < 0 { if start > end || start > s.len || end > s.len || start < 0 || end < 0 {
panic('substr($start, $end) out of bounds (len=$s.len)') println('substr($start, $end) out of bounds (len=$s.len)')
println('s="$s"')
print_backtrace()
return ''
} }
} }
*/
panic('substr($start, $end) out of bounds (len=$s.len)')
}
len := end - start len := end - start
if len == s.len { if len == s.len {
return s.clone() return s.clone()

View File

@ -745,10 +745,14 @@ pub fn (u URL) str() string {
// preceded by a dot-segment (e.g., './this:that') to make a relative- // preceded by a dot-segment (e.g., './this:that') to make a relative-
// path reference. // path reference.
i := path.index_byte(`:`) i := path.index_byte(`:`)
if i > -1 {
// TODO remove this when autofree handles tmp
// expressions like this
if i > -1 && path[..i].index_byte(`/`) == -1 { if i > -1 && path[..i].index_byte(`/`) == -1 {
buf.write_string('./') buf.write_string('./')
} }
} }
}
buf.write_string(path) buf.write_string(path)
} }
if u.force_query || u.raw_query != '' { if u.force_query || u.raw_query != '' {