1414*/
1515#define BIT_SET (a_w , b_w ) ((a_w) & ((c3_h)1 << (b_w)))
1616
17- /* asserting noun deconstruction to make sure HAMTs are bail-safe
18- */
19- static inline u3_noun
20- _h_need (u3_noun som )
21- {
22- u3_assert ( _ (u3a_is_cell (som )) );
23- return ((u3a_cell * )u3a_to_ptr (som ))-> hed ;
24- }
25-
26- static inline u3_noun
27- _t_need (u3_noun som )
28- {
29- u3_assert ( _ (u3a_is_cell (som )) );
30- return ((u3a_cell * )u3a_to_ptr (som ))-> tel ;
31- }
32-
3317static u3_weak
3418_ch_trim_slot (u3h_root * har_u , u3h_slot * sot_w , c3_h lef_h , c3_h rem_h );
3519
@@ -149,8 +133,8 @@ _ch_buck_add(u3h_buck* hab_u, u3_noun kev, c3_w *use_w)
149133 // then replace that key-value pair with kev.
150134 //
151135 for ( i_h = 0 ; i_h < hab_u -> len_h ; i_h ++ ) {
152- u3_noun kov = u3h_slot_to_noun (hab_u -> sot_w [i_h ]);
153- if ( c3y == u3r_sing (_h_need (kev ), _h_need (kov )) ) {
136+ u3_noun kov = u3h_slot_to_noun (hab_u -> sot_h [i_h ]);
137+ if ( c3y == u3r_sing (u3h (kev ), u3h (kov )) ) {
154138 hab_u -> sot_w [i_h ] = u3h_noun_to_slot (kev );
155139 u3z (kov );
156140 return hab_u ;
@@ -250,13 +234,13 @@ _ch_slot_put(u3h_slot* sot_w, u3_noun kev, c3_h lef_h, c3_h rem_h, c3_w* use_w)
250234 else {
251235 u3_noun kov = u3h_slot_to_noun (* sot_w );
252236 u3h_slot add_w = u3h_noun_be_warm (u3h_noun_to_slot (kev ));
253- if ( c3y == u3r_sing (_h_need (kev ), _h_need (kov )) ) {
237+ if ( c3y == u3r_sing (u3h (kev ), u3h (kov )) ) {
254238 // replace old value
255239 u3z (kov );
256240 * sot_w = add_w ;
257241 }
258242 else {
259- c3_h ham_h = CUT_END (u3r_mug (_h_need (kov )), lef_h );
243+ c3_h ham_h = CUT_END (u3r_mug (u3h (kov )), lef_h );
260244 * sot_w = _ch_two (* sot_w , add_w , lef_h , ham_h , rem_h );
261245 * use_w += 1 ;
262246 }
@@ -327,7 +311,7 @@ _ch_buck_del(u3h_slot* sot_w, u3_noun key)
327311 //
328312 for ( i_h = 0 ; i_h < hab_u -> len_h ; i_h ++ ) {
329313 u3_noun kov = u3h_slot_to_noun (hab_u -> sot_w [i_h ]);
330- if ( c3y == u3r_sing (key , _h_need (kov )) ) {
314+ if ( c3y == u3r_sing (key , u3h (kov )) ) {
331315 fin_h = i_h ;
332316 u3z (kov );
333317 break ;
@@ -464,7 +448,7 @@ _ch_uni_with(u3_noun kev, void* wit)
464448{
465449 u3p (u3h_root ) har_p = * (u3p (u3h_root )* )wit ;
466450 u3_noun key , val ;
467- u3_assert ( c3y == u3r_cell ( kev , & key , & val ) );
451+ u3x_cell ( kev , & key , & val );
468452
469453 u3h_put (har_p , key , u3k (val ));
470454}
@@ -668,7 +652,7 @@ _ch_buck_hum(u3h_buck* hab_u, c3_h mug_h)
668652 c3_h i_h ;
669653
670654 for ( i_h = 0 ; i_h < hab_u -> len_h ; i_h ++ ) {
671- if ( mug_h == u3r_mug (_h_need (u3h_slot_to_noun (hab_u -> sot_w [i_h ]))) ) {
655+ if ( mug_h == u3r_mug (u3h (u3h_slot_to_noun (hab_u -> sot_w [i_h ]))) ) {
672656 return c3y ;
673657 }
674658 }
@@ -697,7 +681,7 @@ _ch_node_hum(u3h_node* han_u, c3_h lef_h, c3_h rem_h, c3_h mug_h)
697681 if ( _ (u3h_slot_is_noun (sot_w )) ) {
698682 u3_noun kev = u3h_slot_to_noun (sot_w );
699683
700- if ( mug_h == u3r_mug (_h_need (kev )) ) {
684+ if ( mug_h == u3r_mug (u3h (kev )) ) {
701685 return c3y ;
702686 }
703687 else {
@@ -733,7 +717,7 @@ u3h_hum(u3p(u3h_root) har_p, c3_h mug_h)
733717 else if ( _ (u3h_slot_is_noun (sot_w )) ) {
734718 u3_noun kev = u3h_slot_to_noun (sot_w );
735719
736- if ( mug_h == u3r_mug (_h_need (kev )) ) {
720+ if ( mug_h == u3r_mug (u3h (kev )) ) {
737721 return c3y ;
738722 }
739723 else {
@@ -756,7 +740,7 @@ _ch_buck_git(u3h_buck* hab_u, u3_noun key)
756740
757741 for ( i_h = 0 ; i_h < hab_u -> len_h ; i_h ++ ) {
758742 u3_noun kev = u3h_slot_to_noun (hab_u -> sot_w [i_h ]);
759- if ( _ (u3r_sing (key , _h_need (kev ))) ) {
743+ if ( _ (u3r_sing (key , u3h (kev ))) ) {
760744 return u3t (kev );
761745 }
762746 }
@@ -785,8 +769,8 @@ _ch_node_git(u3h_node* han_u, c3_h lef_h, c3_h rem_h, u3_noun key)
785769 if ( _ (u3h_slot_is_noun (sot_w )) ) {
786770 u3_noun kev = u3h_slot_to_noun (sot_w );
787771
788- if ( _ (u3r_sing (key , _h_need (kev ))) ) {
789- return _t_need (kev );
772+ if ( _ (u3r_sing (key , u3h (kev ))) ) {
773+ return u3t (kev );
790774 }
791775 else {
792776 return u3_none ;
@@ -822,7 +806,7 @@ u3h_git(u3p(u3h_root) har_p, u3_noun key)
822806 else if ( _ (u3h_slot_is_noun (sot_w )) ) {
823807 u3_noun kev = u3h_slot_to_noun (sot_w );
824808
825- if ( _ (u3r_sing (key , _h_need (kev ))) ) {
809+ if ( _ (u3r_sing (key , u3h (kev ))) ) {
826810 har_u -> sot_w [inx_h ] = u3h_noun_be_warm (sot_w );
827811 return u3t (kev );
828812 }
@@ -1009,8 +993,8 @@ static u3h_slot
1009993_ch_take_noun (u3h_slot sot_w , u3_funk fun_f )
1010994{
1011995 u3_noun kov = u3h_slot_to_noun (sot_w );
1012- u3_noun kev = u3nc (u3a_take (_h_need (kov )),
1013- fun_f (_t_need (kov )));
996+ u3_noun kev = u3nc (u3a_take (u3h (kov )),
997+ fun_f (u3t (kov )));
1014998
1015999 return u3h_noun_to_slot (kev );
10161000}
0 commit comments