]> Repositorios git - scryer-prolog.git/commitdiff
clean up bb_put/2 a bit
authorMark Thom <[email protected]>
Wed, 13 Mar 2019 04:57:02 +0000 (22:57 -0600)
committerMark Thom <[email protected]>
Wed, 13 Mar 2019 04:57:02 +0000 (22:57 -0600)
src/prolog/lib/builtins.pl

index 848787b2d0259bfd5096f2dfe791e723c87900ea..1de2db6ab856a7d7b884491f88a11bbd8676d5f2 100644 (file)
@@ -738,17 +738,15 @@ current_predicate(Pred) :-
     ;  throw(error(type_error(predicate_indicator, Pred), current_predicate/1))
     ).
 
-bb_put(Key, Value) :- bb_put(Key, _, Value).
-
-store_global_var(Key, Value) :- '$store_global_var'(Key, Value).
-
-reset_global_var_at_key(Key) :- '$reset_global_var_at_key'(Key).
-
-bb_put(Key, OldValue, NewValue) :-
+bb_put(Key, NewValue) :- 
     (  bb_get(Key, OldValue) ->
        call_cleanup((store_global_var(Key, NewValue) ; false), store_global_var(Key, OldValue))
     ;  call_cleanup((store_global_var(Key, NewValue) ; false), reset_global_var_at_key(Key))
     ).
 
+store_global_var(Key, Value) :- '$store_global_var'(Key, Value).
+
+reset_global_var_at_key(Key) :- '$reset_global_var_at_key'(Key).
+
 bb_get(Key, Value) :- atom(Key), !, '$fetch_global_var'(Key, Value).
 bb_get(Key, _) :- throw(error(type_error(atom, Key), bb_get/2)).