aboutsummaryrefslogtreecommitdiff
path: root/builtins/table.h
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-03-24 14:28:20 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-03-24 14:28:20 -0400
commita29d2ed6d1735d4f12dd250900785db4271edeca (patch)
treee4ffc6ada53bda059ea997d87f125efd7a392fdd /builtins/table.h
parent20d75db79a2b74697d93f395e9d07f43f46e9c6b (diff)
Improve COW/etc handling for update assignments
Diffstat (limited to 'builtins/table.h')
-rw-r--r--builtins/table.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/builtins/table.h b/builtins/table.h
index a29fa7cc..ab0004ec 100644
--- a/builtins/table.h
+++ b/builtins/table.h
@@ -48,6 +48,7 @@ void *Table_reserve(table_t *t, const void *key, const void *value, const TypeIn
void Table_set(table_t *t, const void *key, const void *value, const TypeInfo *type);
#define Table_set_value(t, key_expr, value_expr, type) ({ __typeof(key_expr) $k = key_expr; __typeof(value_expr) $v = value_expr; \
Table_set(t, &$k, &$v, type); })
+#define Table_reserve_value(t, key_expr, type) ({ __typeof(key_expr) $k = key_expr; Table_reserve(t, &$k, NULL, type); })
void Table_remove(table_t *t, const void *key, const TypeInfo *type);
void Table_clear(table_t *t);
void Table_mark_copy_on_write(table_t *t);