Exemplo n.º 1
0
Arquivo: vm.c Projeto: chameco/Solid
void solid_pop_namespace(solid_vm *vm)
{
	if (vm->namespace_stack_pointer == 0) {
		log_err("Namespace stack underflow");
		exit(1);
	}
	solid_delete_object(vm, vm->namespace_stack[vm->namespace_stack_pointer--]);
}
Exemplo n.º 2
0
void solid_delete_list(solid_vm *vm, list_node *l)
{
	if (l != NULL) {
		list_node *c;
		for (c = l->next; c != NULL; c = c->next) {
			if (c->data != NULL) {
				solid_delete_object(vm, (solid_object *) c->data);
			}
			free(c);
		}
	}
	free(l);
}
Exemplo n.º 3
0
void solid_delete_hash(solid_vm *vm, hash_map *h)
{
	int c = 0;
	list_node *l;
	list_node *cur;
	hash_val *hv;
	for (c = 0; c < 256; ++c) {
		l = h->buckets[c];
		if (l != NULL) {
			for (cur = l->next; cur != NULL; cur = cur->next) {
				if (cur->data != NULL) {
					hv = (hash_val *) cur->data;
					solid_delete_object(vm, (solid_object *) hv->val);
					free(hv);
				}
				free(cur);
			}
		}
		free(l);
	}
}