gen: use new_map, new_map_init_1 functions (#7444)
							parent
							
								
									8eac658ed1
								
							
						
					
					
						commit
						0edec06eac
					
				| 
						 | 
					@ -460,5 +460,6 @@ fn test_map_or() {
 | 
				
			||||||
		'second': 2
 | 
							'second': 2
 | 
				
			||||||
		'third':  3
 | 
							'third':  3
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						_ = m
 | 
				
			||||||
	// num := m['first'] or { return }
 | 
						// num := m['first'] or { return }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2515,9 +2515,9 @@ fn (mut g Gen) expr(node ast.Expr) {
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if size > 0 {
 | 
								if size > 0 {
 | 
				
			||||||
				if value_typ.kind == .function {
 | 
									if value_typ.kind == .function {
 | 
				
			||||||
					g.write('new_map_init($size, sizeof(voidptr), _MOV(($key_typ_str[$size]){')
 | 
										g.write('new_map_init_1($size, sizeof($key_typ_str), sizeof(voidptr), _MOV(($key_typ_str[$size]){')
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					g.write('new_map_init($size, sizeof($value_typ_str), _MOV(($key_typ_str[$size]){')
 | 
										g.write('new_map_init_1($size, sizeof($key_typ_str), sizeof($value_typ_str), _MOV(($key_typ_str[$size]){')
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				for expr in node.keys {
 | 
									for expr in node.keys {
 | 
				
			||||||
					g.expr(expr)
 | 
										g.expr(expr)
 | 
				
			||||||
| 
						 | 
					@ -2534,7 +2534,7 @@ fn (mut g Gen) expr(node ast.Expr) {
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				g.write('}))')
 | 
									g.write('}))')
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				g.write('new_map_1(sizeof($value_typ_str))')
 | 
									g.write('new_map(sizeof($key_typ_str), sizeof($value_typ_str))')
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if g.is_shared {
 | 
								if g.is_shared {
 | 
				
			||||||
				g.write(', .mtx = sync__new_rwmutex()}')
 | 
									g.write(', .mtx = sync__new_rwmutex()}')
 | 
				
			||||||
| 
						 | 
					@ -5447,8 +5447,10 @@ fn (mut g Gen) type_default(typ_ table.Type) string {
 | 
				
			||||||
		return '__new_array(0, 1, sizeof($elem_type_str))'
 | 
							return '__new_array(0, 1, sizeof($elem_type_str))'
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if sym.kind == .map {
 | 
						if sym.kind == .map {
 | 
				
			||||||
		value_type_str := g.typ(sym.map_info().value_type)
 | 
							info := sym.map_info()
 | 
				
			||||||
		return 'new_map_1(sizeof($value_type_str))'
 | 
							key_type_str := g.typ(info.key_type)
 | 
				
			||||||
 | 
							value_type_str := g.typ(info.value_type)
 | 
				
			||||||
 | 
							return 'new_map(sizeof($key_type_str), sizeof($value_type_str))'
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	// User struct defined in another module.
 | 
						// User struct defined in another module.
 | 
				
			||||||
	// if typ.contains('__') {
 | 
						// if typ.contains('__') {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -258,7 +258,7 @@ fn (mut g Gen) decode_map(key_type table.Type, value_type table.Type) string {
 | 
				
			||||||
		Option err = v_error( string_add(_SLIT("Json element is not an object: "), tos2(cJSON_PrintUnformatted(root))) );
 | 
							Option err = v_error( string_add(_SLIT("Json element is not an object: "), tos2(cJSON_PrintUnformatted(root))) );
 | 
				
			||||||
		return *(Option_map_${styp}_$styp_v *)&err;
 | 
							return *(Option_map_${styp}_$styp_v *)&err;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	res = new_map_1(sizeof($styp_v));
 | 
						res = new_map(sizeof($styp), sizeof($styp_v));
 | 
				
			||||||
	cJSON *jsval = NULL;
 | 
						cJSON *jsval = NULL;
 | 
				
			||||||
	cJSON_ArrayForEach(jsval, root)
 | 
						cJSON_ArrayForEach(jsval, root)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue