diff options
Diffstat (limited to 'src/bytecode/objects.h')
-rwxr-xr-x | src/bytecode/objects.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/bytecode/objects.h b/src/bytecode/objects.h index fc5e069..9744071 100755 --- a/src/bytecode/objects.h +++ b/src/bytecode/objects.h | |||
@@ -159,4 +159,20 @@ object_equal(Object a, Object b) { | |||
159 | return true; | 159 | return true; |
160 | } | 160 | } |
161 | 161 | ||
162 | Object | ||
163 | object_copy(Object src) { | ||
164 | switch (src.type) { | ||
165 | case OBJ_TYPE_SYMBOL: | ||
166 | case OBJ_TYPE_STRING: { | ||
167 | Object copy = src; | ||
168 | copy.text = NULL; | ||
169 | array_init(copy.text, array_size(src.text)); | ||
170 | array_insert(copy.text, src.text, array_size(src.text)); | ||
171 | return copy; | ||
172 | } break; | ||
173 | default: { break; } break; | ||
174 | } | ||
175 | return src; | ||
176 | } | ||
177 | |||
162 | #endif // BDL_OBJECTS_H | 178 | #endif // BDL_OBJECTS_H |