summaryrefslogtreecommitdiff
path: root/src/map.c
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2015-02-13 18:36:08 -0500
committerAdrian Thurston <thurston@complang.org>2015-02-13 18:36:08 -0500
commit7971f22167db5f108430e4735e4cc1b492e6bd9d (patch)
tree3a8d0f36a13b7fab5c13c3c5d44dcff859da649d /src/map.c
parentccf380421c08b6ec1f8b9c4ce6c62eb1fbf5e1e5 (diff)
downloadcolm-7971f22167db5f108430e4735e4cc1b492e6bd9d.tar.gz
work on value list and value map, can insert into vmap
Diffstat (limited to 'src/map.c')
-rw-r--r--src/map.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/map.c b/src/map.c
index 78e9d7ff..d25f4548 100644
--- a/src/map.c
+++ b/src/map.c
@@ -651,6 +651,18 @@ MapEl *colm_map_insert( Program *prg, Map *map, MapEl *mapEl )
return mapInsertEl( prg, map, mapEl, 0 );
}
+MapEl *colm_vmap_insert( Program *prg, Map *map, Struct *key, Struct *value )
+{
+ struct colm_struct *s = colm_struct_new( prg, map->genericInfo->elStructId );
+
+ colm_struct_set_field( s, Struct*, map->genericInfo->elOffset, key );
+ colm_struct_set_field( s, Struct*, 0, value );
+
+ MapEl *mapEl = colm_struct_get_addr( s, MapEl*, map->genericInfo->elOffset );
+
+ colm_map_insert( prg, map, mapEl );
+}
+
void colm_map_detach( Program *prg, Map *map, MapEl *mapEl )
{
mapDetach( prg, map, mapEl );