autofree: free global map consts and some vweb fixes
							parent
							
								
									b4f7a975e8
								
							
						
					
					
						commit
						091a1bab27
					
				|  | @ -325,6 +325,12 @@ mut: | ||||||
| 	data map[string][]string | 	data map[string][]string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | pub fn (mut h Header) free() { | ||||||
|  | 	unsafe { | ||||||
|  | 		h.data.free() | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| pub struct HeaderConfig { | pub struct HeaderConfig { | ||||||
| 	key   CommonHeader | 	key   CommonHeader | ||||||
| 	value string | 	value string | ||||||
|  |  | ||||||
|  | @ -4642,12 +4642,16 @@ fn (mut g Gen) const_decl_init_later(mod string, name string, val string, typ ta | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if g.is_autofree { | 	if g.is_autofree { | ||||||
|  | 		sym := g.table.get_type_symbol(typ) | ||||||
| 		if styp.starts_with('Array_') { | 		if styp.starts_with('Array_') { | ||||||
| 			g.cleanups[mod].writeln('\tarray_free(&$cname);') | 			g.cleanups[mod].writeln('\tarray_free(&$cname);') | ||||||
| 		} | 		} | ||||||
| 		if styp == 'string' { | 		else if styp == 'string' { | ||||||
| 			g.cleanups[mod].writeln('\tstring_free(&$cname);') | 			g.cleanups[mod].writeln('\tstring_free(&$cname);') | ||||||
| 		} | 		} | ||||||
|  | 		else if sym.kind == .map { | ||||||
|  | 			g.cleanups[mod].writeln('\tmap_free(&$cname);') | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -38,6 +38,7 @@ fn parse_request(mut reader io.BufferedReader) ?http.Request { | ||||||
| 			reader.read(mut body) or {} | 			reader.read(mut body) or {} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | 	h.free() | ||||||
| 
 | 
 | ||||||
| 	return http.Request{ | 	return http.Request{ | ||||||
| 		method: method | 		method: method | ||||||
|  |  | ||||||
|  | @ -298,6 +298,8 @@ pub fn run_app<T>(mut app T, port int) { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | [manualfree] | ||||||
| fn handle_conn<T>(mut conn net.TcpConn, mut app T) { | fn handle_conn<T>(mut conn net.TcpConn, mut app T) { | ||||||
| 	conn.set_read_timeout(30 * time.second) | 	conn.set_read_timeout(30 * time.second) | ||||||
| 	conn.set_write_timeout(30 * time.second) | 	conn.set_write_timeout(30 * time.second) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue