support for trie compact lists (version 2): this new version uses

different marks to distinguish the lists ending with the empty list
from the lists ending with a non-empty list term.
This commit is contained in:
Ricardo Rocha
2009-07-05 05:14:08 +01:00
parent 6f2d5679c6
commit 5e4d7078ab
11 changed files with 748 additions and 751 deletions

View File

@@ -793,65 +793,61 @@ restore_opcodes(yamop *pc)
break;
/* instructions type e */
case _trie_do_atom:
case _trie_do_atom_in_new_list:
case _trie_do_atom_in_new_pair:
case _trie_do_extension:
case _trie_do_float:
case _trie_do_list:
case _trie_do_list_in_new_list:
case _trie_do_long:
case _trie_do_null:
case _trie_do_null_in_new_list:
case _trie_do_null_in_new_pair:
case _trie_do_pair:
case _trie_do_struct:
case _trie_do_struct_in_new_list:
case _trie_do_struct_in_new_pair:
case _trie_do_val:
case _trie_do_val_in_new_list:
case _trie_do_val_in_new_pair:
case _trie_do_var:
case _trie_do_var_in_new_list:
case _trie_do_var_in_new_pair:
case _trie_retry_atom:
case _trie_retry_atom_in_new_list:
case _trie_retry_atom_in_new_pair:
case _trie_retry_extension:
case _trie_retry_float:
case _trie_retry_list:
case _trie_retry_list_in_new_list:
case _trie_retry_long:
case _trie_retry_null:
case _trie_retry_null_in_new_list:
case _trie_retry_null_in_new_pair:
case _trie_retry_pair:
case _trie_retry_struct:
case _trie_retry_struct_in_new_list:
case _trie_retry_struct_in_new_pair:
case _trie_retry_val:
case _trie_retry_val_in_new_list:
case _trie_retry_val_in_new_pair:
case _trie_retry_var:
case _trie_retry_var_in_new_list:
case _trie_retry_var_in_new_pair:
case _trie_trust_atom:
case _trie_trust_atom_in_new_list:
case _trie_trust_atom_in_new_pair:
case _trie_trust_extension:
case _trie_trust_float:
case _trie_trust_list:
case _trie_trust_list_in_new_list:
case _trie_trust_long:
case _trie_trust_null:
case _trie_trust_null_in_new_list:
case _trie_trust_null_in_new_pair:
case _trie_trust_pair:
case _trie_trust_struct:
case _trie_trust_struct_in_new_list:
case _trie_trust_struct_in_new_pair:
case _trie_trust_val:
case _trie_trust_val_in_new_list:
case _trie_trust_val_in_new_pair:
case _trie_trust_var:
case _trie_trust_var_in_new_list:
case _trie_trust_var_in_new_pair:
case _trie_try_atom:
case _trie_try_atom_in_new_list:
case _trie_try_atom_in_new_pair:
case _trie_try_extension:
case _trie_try_float:
case _trie_try_list:
case _trie_try_list_in_new_list:
case _trie_try_long:
case _trie_try_null:
case _trie_try_null_in_new_list:
case _trie_try_null_in_new_pair:
case _trie_try_pair:
case _trie_try_struct:
case _trie_try_struct_in_new_list:
case _trie_try_struct_in_new_pair:
case _trie_try_val:
case _trie_try_val_in_new_list:
case _trie_try_val_in_new_pair:
case _trie_try_var:
case _trie_try_var_in_new_list:
case _trie_try_var_in_new_pair:
if (op == _Nstop || op == _copy_idb_term || op == _unify_idb_term) return;
pc = NEXTOP(pc,e);
break;