/* generated by Id 1.1 at ,$ */ /* with the command: -I../stage1/ -c SequenceableCollection.st -o ../stage2/SequenceableCollection.o.c */ #include static struct __libid *_libid= 0; #ifdef ID_DEBUG # define _enter(info) void *__id_debug= _libid->enter(info) # define _line(lno) _libid->line(lno) # define _leave() _libid->leave(__id_debug) # define _backtrace() _libid->backtrace() #else # define _enter(info) (void)info # define _line(lno) # define _leave() # define _backtrace() "(no debugging information)\n" #endif #define _return _leave(); return #define _sendv(MSG, N, RCV, ARG...) ({ \ struct __send _s= { (MSG), (N), (RCV) }; \ ((_imp_t)(_libid->bindv(&_s)))(&_s, _s.receiver, _s.receiver, ##ARG); \ }) #define _superv(TYP, MSG, N, RCV, ARG...) ({ \ struct __send _s= { (MSG), (N), (TYP) }; \ _imp_t _imp= _libid->bindv(&_s); \ _s.receiver= (RCV); \ _imp(&_s, _s.receiver, _s.receiver, ##ARG); \ }) static oop s_with_do_= 0; static oop s_bitXor_= 0; static oop s_yourself= 0; static oop s_last= 0; static oop s_size= 0; static oop s_second= 0; static oop s_atAllPut_= 0; static oop s_isSequenceableCollection= 0; static oop s_ifTrue_ifFalse_= 0; static oop s__2a= 0; static oop s_identityHash= 0; static oop s_bitAnd_= 0; static oop s_inject_into_= 0; static oop s_function_5f_arity_5f_= 0; static oop s_function_5f_arity_5f_outer_state_nlr_5f_= 0; static oop s_lastIndexOf_= 0; static oop s_lastIndexOf_startingAt_= 0; static oop s_from_to_put_= 0; static oop s_value_value_= 0; static oop s_replaceFrom_to_with_= 0; static oop s_replaceFrom_to_with_startingAt_= 0; static oop s_whileTrue_= 0; static oop s_copyFrom_to_= 0; static oop s_copyFrom_= 0; static oop s_collect_startingAt_= 0; static oop s_injectFirstInto_= 0; static oop s_beginsWith_= 0; static oop s_doWithIndex_= 0; static oop s_withoutSuffix_= 0; static oop s_asByteArray= 0; static oop s_asWordArray= 0; static oop s_atAll_put_= 0; static oop s_new_5f_= 0; static oop s__3c_3d= 0; static oop s_hash= 0; static oop s_new_= 0; static oop s_value_5f_= 0; static oop s_species= 0; static oop s__5fimport_= 0; static oop s_swap_with_= 0; static oop s_ifFalse_= 0; static oop s_do_= 0; static oop s_fourth= 0; static oop s_fifth= 0; static oop s__2d= 0; static oop s_ifTrue_= 0; static oop s__2b= 0; static oop s_to_do_= 0; static oop s_third= 0; static oop s__2c= 0; static oop s_first= 0; static oop s__3d_3d= 0; static oop s_add_= 0; static oop s__3d= 0; static oop s_isEmpty= 0; static oop s__3c= 0; static oop s_and_= 0; static oop s_endsWith_= 0; static oop s__3e= 0; static oop s_withAll_= 0; static oop s_value_= 0; static oop s_at_= 0; static oop s_at_put_= 0; static struct _Selector { const char *name; oop *addr; } _Selectors[]= { { "with:do:", &s_with_do_ }, { "bitXor:", &s_bitXor_ }, { "yourself", &s_yourself }, { "last", &s_last }, { "size", &s_size }, { "second", &s_second }, { "atAllPut:", &s_atAllPut_ }, { "isSequenceableCollection", &s_isSequenceableCollection }, { "ifTrue:ifFalse:", &s_ifTrue_ifFalse_ }, { "*", &s__2a }, { "identityHash", &s_identityHash }, { "bitAnd:", &s_bitAnd_ }, { "inject:into:", &s_inject_into_ }, { "function_:arity_:", &s_function_5f_arity_5f_ }, { "function_:arity_:outer:state:nlr_:", &s_function_5f_arity_5f_outer_state_nlr_5f_ }, { "lastIndexOf:", &s_lastIndexOf_ }, { "lastIndexOf:startingAt:", &s_lastIndexOf_startingAt_ }, { "from:to:put:", &s_from_to_put_ }, { "value:value:", &s_value_value_ }, { "replaceFrom:to:with:", &s_replaceFrom_to_with_ }, { "replaceFrom:to:with:startingAt:", &s_replaceFrom_to_with_startingAt_ }, { "whileTrue:", &s_whileTrue_ }, { "copyFrom:to:", &s_copyFrom_to_ }, { "copyFrom:", &s_copyFrom_ }, { "collect:startingAt:", &s_collect_startingAt_ }, { "injectFirstInto:", &s_injectFirstInto_ }, { "beginsWith:", &s_beginsWith_ }, { "doWithIndex:", &s_doWithIndex_ }, { "withoutSuffix:", &s_withoutSuffix_ }, { "asByteArray", &s_asByteArray }, { "asWordArray", &s_asWordArray }, { "atAll:put:", &s_atAll_put_ }, { "new_:", &s_new_5f_ }, { "<=", &s__3c_3d }, { "hash", &s_hash }, { "new:", &s_new_ }, { "value_:", &s_value_5f_ }, { "species", &s_species }, { "_import:", &s__5fimport_ }, { "swap:with:", &s_swap_with_ }, { "ifFalse:", &s_ifFalse_ }, { "do:", &s_do_ }, { "fourth", &s_fourth }, { "fifth", &s_fifth }, { "-", &s__2d }, { "ifTrue:", &s_ifTrue_ }, { "+", &s__2b }, { "to:do:", &s_to_do_ }, { "third", &s_third }, { ",", &s__2c }, { "first", &s_first }, { "==", &s__3d_3d }, { "add:", &s_add_ }, { "=", &s__3d }, { "isEmpty", &s_isEmpty }, { "<", &s__3c }, { "and:", &s_and_ }, { "endsWith:", &s_endsWith_ }, { ">", &s__3e }, { "withAll:", &s_withAll_ }, { "value:", &s_value_ }, { "at:", &s_at_ }, { "at:put:", &s_at_put_ }, { 0, 0 } }; struct t__object { struct _vtable *_vtable[0]; }; struct t__selector { struct _vtable *_vtable[0]; oop v__size; oop v__elements; }; struct t__assoc { struct _vtable *_vtable[0]; oop v_key; oop v_value; }; struct t__closure { struct _vtable *_vtable[0]; oop v__method; oop v_data; }; struct t__vector { struct _vtable *_vtable[0]; oop v__size; }; struct t__vtable { struct _vtable *_vtable[0]; oop v__tally; oop v_bindings; oop v_delegate; }; struct t_Object { struct _vtable *_vtable[0]; }; struct t_UndefinedObject { struct _vtable *_vtable[0]; }; struct t_StaticBlockClosure { struct _vtable *_vtable[0]; oop v__function; oop v__arity; }; struct t_BlockClosure { struct _vtable *_vtable[0]; oop v__function; oop v__arity; oop v_outer; oop v_state; oop v__nlr; }; struct t_Magnitude { struct _vtable *_vtable[0]; }; struct t_Character { struct _vtable *_vtable[0]; oop v_value; }; struct t_Number { struct _vtable *_vtable[0]; }; struct t_Fraction { struct _vtable *_vtable[0]; oop v_numerator; oop v_denominator; }; struct t_Float { struct _vtable *_vtable[0]; }; struct t_Integer { struct _vtable *_vtable[0]; }; struct t_SmallInteger { struct _vtable *_vtable[0]; }; struct t_LargePositiveInteger { struct _vtable *_vtable[0]; oop v_bytes; }; struct t_LargeNegativeInteger { struct _vtable *_vtable[0]; oop v_bytes; }; struct t_Collection { struct _vtable *_vtable[0]; }; struct t_SequenceableCollection { struct _vtable *_vtable[0]; }; struct t_ArrayedCollection { struct _vtable *_vtable[0]; oop v_size; }; struct t_Array { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_ImmutableArray { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_WordArray { struct _vtable *_vtable[0]; oop v_size; oop v__words; }; struct t_ImmutableWordArray { struct _vtable *_vtable[0]; oop v_size; oop v__words; }; struct t_ByteArray { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_ImmutableByteArray { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_String { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_ImmutableString { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_Symbol { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_nil { struct _vtable *_vtable[0]; }; struct t_true { struct _vtable *_vtable[0]; }; struct t_false { struct _vtable *_vtable[0]; }; struct t_CharacterTable { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; static oop l_4= 0; static oop l_5= 0; static oop l_7= 0; static oop l_8= 0; static oop l_6= 0; static oop l_12= 0; static oop l_17= 0; static oop l_19= 0; static oop l_21= 0; static oop l_23= 0; static oop l_25= 0; static oop l_28= 0; static oop l_30= 0; static oop l_33= 0; static oop l_35= 0; static oop l_38= 0; static oop l_41= 0; static oop l_44= 0; static oop l_47= 0; static oop l_49= 0; static oop l_52= 0; static oop l_55= 0; static oop l_60= 0; static oop l_63= 0; static oop v__object= 0; static oop v__vector= 0; static oop v_Object= 0; static oop v_UndefinedObject= 0; static oop v_StaticBlockClosure= 0; static oop v_BlockClosure= 0; static oop v_Magnitude= 0; static oop v_Number= 0; static oop v_Integer= 0; static oop v_SmallInteger= 0; static oop v_LargePositiveInteger= 0; static oop v_Collection= 0; static oop v_SequenceableCollection= 0; static oop v_ArrayedCollection= 0; static oop v_Array= 0; static oop v_WordArray= 0; static oop v_ByteArray= 0; static oop v_String= 0; static oop v_ImmutableString= 0; static oop v_true= 0; static oop v_false= 0; static struct __methodinfo __info1= { "isSequenceableCollection", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 25, 26, 0 }; static oop SequenceableCollection__isSequenceableCollection(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info1); oop _1= 0; _line(25); _1= v_true; _leave(); return _1; _leave(); } static struct __methodinfo __info2= { "isSequenceableCollection", "Object", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 26, 28, &__info1 }; static oop Object__isSequenceableCollection(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info2); oop _1= 0; _line(26); _1= v_false; _leave(); return _1; _leave(); } static struct __methodinfo __info6= { "[] hash", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 28, 39, &__info2 }; static oop b_6(oop v__closure, oop v__self, oop v_prev, oop v_elt) { _enter(&__info6); oop _1= 0; oop _2= 0; _line(35); _1= v_prev; _2= l_8; { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l * _r); if ((1 & (long)_1) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2a, 2, _1, _2); } _2= v_elt; _line(35); _2=_sendv(s_hash, 1, _2); if ((1 & (long)_1 & (long)_2) && (_1 > 0) && (_2 > 0)) { _1= (oop)(((long)_1 ^ (long)_2) | 1); } else _1= _sendv(s_bitXor_, 2, _1, _2); _2= l_7; if ((1 & (long)_1) && (_1 > 0) && (_2 > 0)) { _1= (oop)((long)_1 & (long)_2); } else _1= _sendv(s_bitAnd_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info3= { "hash", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 28, 39, &__info6 }; static oop SequenceableCollection__hash(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info3); oop _1= 0; oop _2= 0; oop _3= 0; _line(28); /* ifTrue:ifFalse: */ _1= v_self; _line(33); _1=_sendv(s_size, 1, _1); _2= l_4; if (1 & (long)_1) { _1= (((long)_1 > (long)_2) ? v_true : v_false); } else _1= _sendv(s__3e, 2, _1, _2); if (!_1) goto _l1; { _1= v_self; _line(34); _1=_sendv(s_species, 1, _1); _line(34); _1=_sendv(s_identityHash, 1, _1); } goto _l2; _l1:; { _1= v_self; _2= v_self; _line(35); _2=_sendv(s_size, 1, _2); _3= l_5; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l * _r); if ((1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2a, 2, _2, _3); } _3= v_self; _line(35); _3=_sendv(s_species, 1, _3); _line(35); _3=_sendv(s_identityHash, 1, _3); { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= _l + _r; if ((1 & (long)_2 & (long)_3) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2b, 2, _2, _3); } _3= l_6; _line(35); _1=_sendv(s_inject_into_, 3, _1, _2, _3); } _l2:; _2= l_7; if ((1 & (long)_1) && (_1 > 0) && (_2 > 0)) { _1= (oop)((long)_1 & (long)_2); } else _1= _sendv(s_bitAnd_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info10= { "[] =", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 39, 47, &__info3 }; static oop b_10(oop v__closure, oop v__self, oop v_a, oop v_b) { _enter(&__info10); oop _1= 0; oop _2= 0; oop _3= 0; _line(43); /* ifFalse: */ _1= 0; _2= v_a; _3= v_b; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (_2) goto _l3; { _1= v_false; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); } _l3:; _leave(); return _1; _leave(); } static struct __methodinfo __info9= { "=", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 39, 47, &__info10 }; static oop SequenceableCollection___3d(oop v__closure, oop v_stateful_self, oop v_self, oop v_aCollection) { _enter(&__info9); oop _1= 0; oop _2= 0; oop _3= 0; jmp_buf __nlr; oop _nlr; _nlr= (oop)&__nlr; if (setjmp(__nlr)) { return _libid->nlresult(); } _line(39); /* ifTrue: */ _1= 0; _2= v_self; _3= v_aCollection; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l4; { _1= v_true; _leave(); return _1; } _l4:; /* ifFalse: */ _1= 0; /* and: */ _2= v_aCollection; _line(42); _2=_sendv(s_isSequenceableCollection, 1, _2); if (!_2) goto _l6; { /* and: */ _2= v_self; _line(42); _2=_sendv(s_species, 1, _2); _3= v_aCollection; _line(42); _3=_sendv(s_species, 1, _3); _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l7; { _2= v_self; _line(42); _2=_sendv(s_size, 1, _2); _3= v_aCollection; _line(42); _3=_sendv(s_size, 1, _3); _2= (_2 == _3) ? v_true : v_false; } _l7:; } _l6:; if (_2) goto _l5; { _1= v_false; _leave(); return _1; } _l5:; _1= v_self; _2= v_aCollection; /* Scope('b'->ArgumentVariableNode 'a'->ArgumentVariableNode) */ /* Scope('aCollection'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_10, 2, 0, 0, _nlr); _line(43); _1=_sendv(s_with_do_, 3, _1, _2, _3); _1= v_true; _leave(); return _1; _leave(); } static struct __methodinfo __info13= { "[] atAllPut:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 47, 48, &__info9 }; static oop b_13(oop v__closure, oop v__self, oop v_index) { _enter(&__info13); oop _1= 0; oop _2= 0; oop _3= 0; _line(47); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* self */ _2= v_index; _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]; /* anObject */ _line(47); _1=_sendv(s_at_put_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info11= { "atAllPut:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 47, 48, &__info13 }; static oop SequenceableCollection__atAllPut_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject) { _enter(&__info11); oop _state1= _sendv(s_new_5f_, 2, v__vector, 4); oop _1= 0; oop _2= 0; oop _3= 0; ((oop *)_state1)[2]= v_stateful_self; ((oop *)_state1)[1]= v_self; ((oop *)_state1)[3]= v_anObject; _line(47); _1= l_12; _2= ((oop *)_state1)[1]; /* self */ _line(47); _2=_sendv(s_size, 1, _2); /* Scope('index'->ArgumentVariableNode) */ /* Scope('anObject'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_13, 1, 0, ((oop *)_state1), 0); _line(47); _1=_sendv(s_to_do_, 3, _1, _2, _3); _1= ((oop *)_state1)[1]; /* self */ _leave(); return _1; _leave(); } static struct __methodinfo __info15= { "[] atAll:put:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 48, 50, &__info11 }; static oop b_15(oop v__closure, oop v__self, oop v_index) { _enter(&__info15); oop _1= 0; oop _2= 0; oop _3= 0; _line(48); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* self */ _2= v_index; _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]; /* anObject */ _line(48); _1=_sendv(s_at_put_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info14= { "atAll:put:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 48, 50, &__info15 }; static oop SequenceableCollection__atAll_put_(oop v__closure, oop v_stateful_self, oop v_self, oop v_indices, oop v_anObject) { _enter(&__info14); oop _state1= _sendv(s_new_5f_, 2, v__vector, 4); oop _1= 0; oop _2= 0; ((oop *)_state1)[2]= v_stateful_self; ((oop *)_state1)[1]= v_self; ((oop *)_state1)[3]= v_anObject; _line(48); _1= v_indices; /* Scope('index'->ArgumentVariableNode) */ /* Scope('indices'->ArgumentVariableNode 'self'->ArgumentVariableNode 'anObject'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_15, 1, 0, ((oop *)_state1), 0); _line(48); _1=_sendv(s_do_, 2, _1, _2); _1= ((oop *)_state1)[1]; /* self */ _leave(); return _1; _leave(); } static struct __methodinfo __info16= { "first", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 50, 51, &__info14 }; static oop SequenceableCollection__first(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info16); oop _1= 0; oop _2= 0; _line(50); _1= v_self; _2= l_17; _line(50); _1=_sendv(s_at_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info18= { "second", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 51, 52, &__info16 }; static oop SequenceableCollection__second(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info18); oop _1= 0; oop _2= 0; _line(51); _1= v_self; _2= l_19; _line(51); _1=_sendv(s_at_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info20= { "third", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 52, 53, &__info18 }; static oop SequenceableCollection__third(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info20); oop _1= 0; oop _2= 0; _line(52); _1= v_self; _2= l_21; _line(52); _1=_sendv(s_at_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info22= { "fourth", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 53, 54, &__info20 }; static oop SequenceableCollection__fourth(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info22); oop _1= 0; oop _2= 0; _line(53); _1= v_self; _2= l_23; _line(53); _1=_sendv(s_at_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info24= { "fifth", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 54, 55, &__info22 }; static oop SequenceableCollection__fifth(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info24); oop _1= 0; oop _2= 0; _line(54); _1= v_self; _2= l_25; _line(54); _1=_sendv(s_at_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info26= { "last", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 55, 57, &__info24 }; static oop SequenceableCollection__last(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info26); oop _1= 0; oop _2= 0; _line(55); _1= v_self; _2= v_self; _line(55); _2=_sendv(s_size, 1, _2); _line(55); _1=_sendv(s_at_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info27= { "lastIndexOf:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 57, 62, &__info26 }; static oop SequenceableCollection__lastIndexOf_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject) { _enter(&__info27); oop _1= 0; oop _2= 0; oop _3= 0; _line(57); _1= v_self; _2= v_anObject; _3= l_28; _line(59); _1=_sendv(s_lastIndexOf_startingAt_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info31= { "[] lastIndexOf:startingAt:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 62, 70, &__info27 }; static oop b_31(oop v__closure, oop v__self, oop v_i) { _enter(&__info31); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(66); /* ifTrue: */ _1= 0; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* anObject */ _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _4= v_i; _line(66); _3=_sendv(s_at_, 2, _3, _4); if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l8; { _1= v_i; ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1; /* index */ } _l8:; _leave(); return _1; _leave(); } static struct __methodinfo __info29= { "lastIndexOf:startingAt:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 62, 70, &__info31 }; static oop SequenceableCollection__lastIndexOf_startingAt_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject, oop v_firstIndex) { _enter(&__info29); oop _state1= _sendv(s_new_5f_, 2, v__vector, 5); oop _1= 0; oop _2= 0; oop _3= 0; ((oop *)_state1)[3]= v_stateful_self; ((oop *)_state1)[2]= v_self; ((oop *)_state1)[1]= v_anObject; _line(62); _1= l_30; ((oop *)_state1)[4]= _1; /* index */ _1= v_firstIndex; _2= ((oop *)_state1)[2]; /* self */ _line(66); _2=_sendv(s_size, 1, _2); /* Scope('i'->ArgumentVariableNode) */ /* Scope('firstIndex'->ArgumentVariableNode 'self'->ArgumentVariableNode 'index'->TemporaryVariableNode 'anObject'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_31, 1, 0, ((oop *)_state1), 0); _line(66); _1=_sendv(s_to_do_, 3, _1, _2, _3); _1= ((oop *)_state1)[4]; /* index */ _leave(); return _1; _leave(); } static struct __methodinfo __info32= { "from:to:put:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 70, 78, &__info29 }; static oop SequenceableCollection__from_to_put_(oop v__closure, oop v_stateful_self, oop v_self, oop v_pos, oop v_last, oop v_anObject) { _enter(&__info32); oop _1= 0; oop _2= 0; oop _3= 0; _line(70); /* whileTrue: */ goto _l10; _l9:; { _1= v_self; _2= v_pos; _3= v_anObject; _line(74); _1=_sendv(s_at_put_, 3, _1, _2, _3); _1= v_pos; _2= l_33; { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } v_pos= _1; } _l10:; { _1= v_pos; _2= v_last; if (1 & (long)_1 & (long)_2) { _1= (((long)_1 <= (long)_2) ? v_true : v_false); } else _1= _sendv(s__3c_3d, 2, _1, _2); } if (_1) goto _l9; _1= 0; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info36= { "[] do:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 78, 83, &__info32 }; static oop b_36(oop v__closure, oop v__self, oop v_index) { _enter(&__info36); oop _1= 0; oop _2= 0; oop _3= 0; _line(80); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* unaryBlock */ _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _3= v_index; _line(80); _2=_sendv(s_at_, 2, _2, _3); _line(80); _1=_sendv(s_value_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info34= { "do:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 78, 83, &__info36 }; static oop SequenceableCollection__do_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock) { _enter(&__info34); oop _state1= _sendv(s_new_5f_, 2, v__vector, 4); oop _1= 0; oop _2= 0; oop _3= 0; ((oop *)_state1)[3]= v_stateful_self; ((oop *)_state1)[2]= v_self; ((oop *)_state1)[1]= v_unaryBlock; _line(78); _1= l_35; _2= ((oop *)_state1)[2]; /* self */ _line(80); _2=_sendv(s_size, 1, _2); /* Scope('index'->ArgumentVariableNode) */ /* Scope('unaryBlock'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_36, 1, 0, ((oop *)_state1), 0); _line(80); _1=_sendv(s_to_do_, 3, _1, _2, _3); _1= ((oop *)_state1)[2]; /* self */ _leave(); return _1; _leave(); } static struct __methodinfo __info39= { "[] with:do:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 83, 88, &__info34 }; static oop b_39(oop v__closure, oop v__self, oop v_index) { _enter(&__info39); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(85); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* binaryBlock */ _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _3= v_index; _line(85); _2=_sendv(s_at_, 2, _2, _3); _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]; /* aSequenceableCollection */ _4= v_index; _line(85); _3=_sendv(s_at_, 2, _3, _4); _line(85); _1=_sendv(s_value_value_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info37= { "with:do:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 83, 88, &__info39 }; static oop SequenceableCollection__with_do_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aSequenceableCollection, oop v_binaryBlock) { _enter(&__info37); oop _state1= _sendv(s_new_5f_, 2, v__vector, 5); oop _1= 0; oop _2= 0; oop _3= 0; ((oop *)_state1)[3]= v_stateful_self; ((oop *)_state1)[2]= v_self; ((oop *)_state1)[4]= v_aSequenceableCollection; ((oop *)_state1)[1]= v_binaryBlock; _line(83); _1= l_38; _2= ((oop *)_state1)[2]; /* self */ _line(85); _2=_sendv(s_size, 1, _2); /* Scope('index'->ArgumentVariableNode) */ /* Scope('stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode 'aSequenceableCollection'->ArgumentVariableNode 'binaryBlock'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_39, 1, 0, ((oop *)_state1), 0); _line(85); _1=_sendv(s_to_do_, 3, _1, _2, _3); _1= ((oop *)_state1)[2]; /* self */ _leave(); return _1; _leave(); } static struct __methodinfo __info40= { ",", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 88, 96, &__info37 }; static oop SequenceableCollection___2c(oop v__closure, oop v_stateful_self, oop v_self, oop v_aCollection) { _enter(&__info40); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(88); _1= v_self; _line(90); _1=_sendv(s_species, 1, _1); _2= v_self; _line(90); _2=_sendv(s_size, 1, _2); _3= v_aCollection; _line(90); _3=_sendv(s_size, 1, _3); { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= _l + _r; if ((1 & (long)_2 & (long)_3) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2b, 2, _2, _3); } _line(90); _1=_sendv(s_new_, 2, _1, _2); _2= l_41; _3= v_self; _line(91); _3=_sendv(s_size, 1, _3); _4= v_self; _line(91); _sendv(s_replaceFrom_to_with_, 4, _1, _2, _3, _4); _2= v_self; _line(92); _2=_sendv(s_size, 1, _2); _3= l_41; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= _l + _r; if ((1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2b, 2, _2, _3); } _3= v_self; _line(92); _3=_sendv(s_size, 1, _3); _4= v_aCollection; _line(92); _4=_sendv(s_size, 1, _4); { int _l= (long)_3 >> 1; int _r= (long)_4 >> 1; int _s= _l + _r; if ((1 & (long)_3 & (long)_4) && ((_s ^ (_s << 1)) >= 0)) _3= (oop)(long)(_s << 1 | 1); else _3= _sendv(s__2b, 2, _3, _4); } _4= v_aCollection; _sendv(s_replaceFrom_to_with_, 4, _1, _2, _3, _4); _1=_sendv(s_yourself, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info42= { "swap:with:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 96, 105, &__info40 }; static oop SequenceableCollection__swap_with_(oop v__closure, oop v_stateful_self, oop v_self, oop v_oneIndex, oop v_anotherIndex) { _enter(&__info42); oop v_element= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; (void)v_element; _line(96); _1= v_self; _2= v_oneIndex; _line(100); _1=_sendv(s_at_, 2, _1, _2); v_element= _1; _1= v_self; _2= v_oneIndex; _3= v_self; _4= v_anotherIndex; _line(101); _3=_sendv(s_at_, 2, _3, _4); _line(101); _1=_sendv(s_at_put_, 3, _1, _2, _3); _1= v_self; _2= v_anotherIndex; _3= v_element; _line(102); _1=_sendv(s_at_put_, 3, _1, _2, _3); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info43= { "replaceFrom:to:with:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 105, 110, &__info42 }; static oop SequenceableCollection__replaceFrom_to_with_(oop v__closure, oop v_stateful_self, oop v_self, oop v_start, oop v_stop, oop v_aCollection) { _enter(&__info43); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; _line(105); _1= v_self; _2= v_start; _3= v_stop; _4= v_aCollection; _5= l_44; _line(107); _1=_sendv(s_replaceFrom_to_with_startingAt_, 5, _1, _2, _3, _4, _5); _leave(); return _1; _leave(); } static struct __methodinfo __info46= { "[] replaceFrom:to:with:startingAt:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 110, 117, &__info43 }; static oop b_46(oop v__closure, oop v__self, oop v_index) { _enter(&__info46); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(112); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* self */ _2= v_index; _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]; /* aCollection */ _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]; /* startIndex */ _line(113); _3=_sendv(s_at_, 2, _3, _4); _line(113); _1=_sendv(s_at_put_, 3, _1, _2, _3); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]; /* startIndex */ _2= l_47; { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1; /* startIndex */ _leave(); return _1; _leave(); } static struct __methodinfo __info45= { "replaceFrom:to:with:startingAt:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 110, 117, &__info46 }; static oop SequenceableCollection__replaceFrom_to_with_startingAt_(oop v__closure, oop v_stateful_self, oop v_self, oop v_start, oop v_stop, oop v_aCollection, oop v_startIndex) { _enter(&__info45); oop _state1= _sendv(s_new_5f_, 2, v__vector, 5); oop _1= 0; oop _2= 0; oop _3= 0; ((oop *)_state1)[2]= v_stateful_self; ((oop *)_state1)[1]= v_self; ((oop *)_state1)[3]= v_aCollection; ((oop *)_state1)[4]= v_startIndex; _line(110); _1= v_start; _2= v_stop; /* Scope('index'->ArgumentVariableNode) */ /* Scope('aCollection'->ArgumentVariableNode 'self'->ArgumentVariableNode 'startIndex'->ArgumentVariableNode 'start'->ArgumentVariableNode 'stop'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_46, 1, 0, ((oop *)_state1), 0); _line(112); _1=_sendv(s_to_do_, 3, _1, _2, _3); _1= ((oop *)_state1)[1]; /* self */ _leave(); return _1; _leave(); } static struct __methodinfo __info48= { "copyFrom:to:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 117, 130, &__info45 }; static oop SequenceableCollection__copyFrom_to_(oop v__closure, oop v_stateful_self, oop v_self, oop v_start, oop v_stop) { _enter(&__info48); oop v_newSize= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; (void)v_newSize; _line(117); _1= v_stop; _2= v_start; { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l - _r); if ((1 & (long)_1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2d, 2, _1, _2); } _2= l_49; { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } v_newSize= _1; _1= v_self; _line(123); _1=_sendv(s_species, 1, _1); _2= v_newSize; _line(123); _1=_sendv(s_new_, 2, _1, _2); _2= l_49; _3= v_newSize; _4= v_self; _5= v_start; _line(124); _1=_sendv(s_replaceFrom_to_with_startingAt_, 5, _1, _2, _3, _4, _5); _leave(); return _1; _leave(); } static struct __methodinfo __info50= { "copyFrom:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 130, 135, &__info48 }; static oop SequenceableCollection__copyFrom_(oop v__closure, oop v_stateful_self, oop v_self, oop v_start) { _enter(&__info50); oop _1= 0; oop _2= 0; oop _3= 0; _line(130); _1= v_self; _2= v_start; _3= v_self; _line(132); _3=_sendv(s_size, 1, _3); _line(132); _1=_sendv(s_copyFrom_to_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info53= { "[] collect:startingAt:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 135, 143, &__info50 }; static oop b_53(oop v__closure, oop v__self, oop v_index) { _enter(&__info53); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(139); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* answer */ _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* unaryBlock */ _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]; /* self */ _4= v_index; _line(139); _3=_sendv(s_at_, 2, _3, _4); _line(139); _2=_sendv(s_value_, 2, _2, _3); _line(139); _1=_sendv(s_add_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info51= { "collect:startingAt:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 135, 143, &__info53 }; static oop SequenceableCollection__collect_startingAt_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock, oop v_offset) { _enter(&__info51); oop _state1= _sendv(s_new_5f_, 2, v__vector, 5); oop _1= 0; oop _2= 0; oop _3= 0; ((oop *)_state1)[4]= v_stateful_self; ((oop *)_state1)[3]= v_self; ((oop *)_state1)[2]= v_unaryBlock; _line(135); _1= ((oop *)_state1)[3]; /* self */ _line(138); _1=_sendv(s_species, 1, _1); _2= ((oop *)_state1)[3]; /* self */ _line(138); _2=_sendv(s_size, 1, _2); _3= v_offset; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l - _r); if ((1 & (long)_2 & (long)_3) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2d, 2, _2, _3); } _3= l_52; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= _l + _r; if ((1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2b, 2, _2, _3); } _line(138); _1=_sendv(s_new_, 2, _1, _2); ((oop *)_state1)[1]= _1; /* answer */ _1= v_offset; _2= ((oop *)_state1)[3]; /* self */ _line(139); _2=_sendv(s_size, 1, _2); /* Scope('index'->ArgumentVariableNode) */ /* Scope('offset'->ArgumentVariableNode 'self'->ArgumentVariableNode 'answer'->TemporaryVariableNode 'unaryBlock'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_53, 1, 0, ((oop *)_state1), 0); _line(139); _1=_sendv(s_to_do_, 3, _1, _2, _3); _1= ((oop *)_state1)[1]; /* answer */ _leave(); return _1; _leave(); } static struct __methodinfo __info56= { "[] injectFirstInto:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 143, 151, &__info51 }; static oop b_56(oop v__closure, oop v__self, oop v_index) { _enter(&__info56); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(147); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* binaryBlock */ _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* result */ _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]; /* self */ _4= v_index; _line(147); _3=_sendv(s_at_, 2, _3, _4); _line(147); _1=_sendv(s_value_value_, 3, _1, _2, _3); ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]= _1; /* result */ _leave(); return _1; _leave(); } static struct __methodinfo __info54= { "injectFirstInto:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 143, 151, &__info56 }; static oop SequenceableCollection__injectFirstInto_(oop v__closure, oop v_stateful_self, oop v_self, oop v_binaryBlock) { _enter(&__info54); oop _state1= _sendv(s_new_5f_, 2, v__vector, 5); oop _1= 0; oop _2= 0; oop _3= 0; ((oop *)_state1)[4]= v_stateful_self; ((oop *)_state1)[3]= v_self; ((oop *)_state1)[1]= v_binaryBlock; _line(143); /* ifFalse: */ _1= 0; _2= ((oop *)_state1)[3]; /* self */ _line(146); _2=_sendv(s_isEmpty, 1, _2); if (_2) goto _l11; { _1= ((oop *)_state1)[3]; /* self */ _line(146); _1=_sendv(s_first, 1, _1); } _l11:; ((oop *)_state1)[2]= _1; /* result */ _1= l_55; _2= ((oop *)_state1)[3]; /* self */ _line(147); _2=_sendv(s_size, 1, _2); /* Scope('index'->ArgumentVariableNode) */ /* Scope('result'->TemporaryVariableNode 'self'->ArgumentVariableNode 'binaryBlock'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_56, 1, 0, ((oop *)_state1), 0); _line(147); _1=_sendv(s_to_do_, 3, _1, _2, _3); _1= ((oop *)_state1)[2]; /* result */ _leave(); return _1; _leave(); } static struct __methodinfo __info58= { "[] beginsWith:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 151, 159, &__info54 }; static oop b_58(oop v__closure, oop v__self, oop v_element, oop v_index) { _enter(&__info58); oop _1= 0; oop _2= 0; oop _3= 0; _line(155); /* ifFalse: */ _1= 0; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* self */ _3= v_index; _line(155); _2=_sendv(s_at_, 2, _2, _3); _3= v_element; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (_2) goto _l12; { _1= v_false; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); } _l12:; _leave(); return _1; _leave(); } static struct __methodinfo __info57= { "beginsWith:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 151, 159, &__info58 }; static oop SequenceableCollection__beginsWith_(oop v__closure, oop v_stateful_self, oop v_self, oop v_prefix) { _enter(&__info57); oop _state1= _sendv(s_new_5f_, 2, v__vector, 3); oop _1= 0; oop _2= 0; oop _3= 0; jmp_buf __nlr; oop _nlr; ((oop *)_state1)[2]= v_stateful_self; ((oop *)_state1)[1]= v_self; _nlr= (oop)&__nlr; if (setjmp(__nlr)) { return _libid->nlresult(); } _line(151); /* ifTrue: */ _1= 0; _2= ((oop *)_state1)[1]; /* self */ _line(154); _2=_sendv(s_size, 1, _2); _3= v_prefix; _line(154); _3=_sendv(s_size, 1, _3); if (1 & (long)_2 & (long)_3) { _2= (((long)_2 < (long)_3) ? v_true : v_false); } else _2= _sendv(s__3c, 2, _2, _3); if (!_2) goto _l13; { _1= v_false; _leave(); return _1; } _l13:; _1= v_prefix; /* Scope('element'->ArgumentVariableNode 'index'->ArgumentVariableNode) */ /* Scope('prefix'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_58, 2, 0, ((oop *)_state1), _nlr); _line(155); _1=_sendv(s_doWithIndex_, 2, _1, _2); _1= v_true; _leave(); return _1; _leave(); } static struct __methodinfo __info61= { "[] endsWith:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 159, 169, &__info57 }; static oop b_61(oop v__closure, oop v__self, oop v_index) { _enter(&__info61); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(165); /* ifFalse: */ _1= 0; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* self */ _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]; /* start */ _4= v_index; { int _l= (long)_3 >> 1; int _r= (long)_4 >> 1; int _s= _l + _r; if ((1 & (long)_3 & (long)_4) && ((_s ^ (_s << 1)) >= 0)) _3= (oop)(long)(_s << 1 | 1); else _3= _sendv(s__2b, 2, _3, _4); } _line(165); _2=_sendv(s_at_, 2, _2, _3); _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]; /* suffix */ _4= v_index; _line(165); _3=_sendv(s_at_, 2, _3, _4); if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (_2) goto _l14; { _1= v_false; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); } _l14:; _leave(); return _1; _leave(); } static struct __methodinfo __info59= { "endsWith:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 159, 169, &__info61 }; static oop SequenceableCollection__endsWith_(oop v__closure, oop v_stateful_self, oop v_self, oop v_suffix) { _enter(&__info59); oop _state1= _sendv(s_new_5f_, 2, v__vector, 5); oop _1= 0; oop _2= 0; oop _3= 0; jmp_buf __nlr; oop _nlr; ((oop *)_state1)[2]= v_stateful_self; ((oop *)_state1)[1]= v_self; ((oop *)_state1)[4]= v_suffix; _nlr= (oop)&__nlr; if (setjmp(__nlr)) { return _libid->nlresult(); } _line(159); /* ifTrue: */ _1= 0; _2= ((oop *)_state1)[1]; /* self */ _line(163); _2=_sendv(s_size, 1, _2); _3= ((oop *)_state1)[4]; /* suffix */ _line(163); _3=_sendv(s_size, 1, _3); if (1 & (long)_2 & (long)_3) { _2= (((long)_2 < (long)_3) ? v_true : v_false); } else _2= _sendv(s__3c, 2, _2, _3); if (!_2) goto _l15; { _1= v_false; _leave(); return _1; } _l15:; _1= ((oop *)_state1)[1]; /* self */ _line(164); _1=_sendv(s_size, 1, _1); _2= ((oop *)_state1)[4]; /* suffix */ _line(164); _2=_sendv(s_size, 1, _2); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l - _r); if ((1 & (long)_1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2d, 2, _1, _2); } ((oop *)_state1)[3]= _1; /* start */ _1= l_60; _2= ((oop *)_state1)[4]; /* suffix */ _line(165); _2=_sendv(s_size, 1, _2); /* Scope('index'->ArgumentVariableNode) */ /* Scope('suffix'->ArgumentVariableNode 'self'->ArgumentVariableNode 'start'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_61, 1, 0, ((oop *)_state1), _nlr); _line(165); _1=_sendv(s_to_do_, 3, _1, _2, _3); _1= v_true; _leave(); return _1; _leave(); } static struct __methodinfo __info62= { "withoutSuffix:", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 169, 176, &__info59 }; static oop SequenceableCollection__withoutSuffix_(oop v__closure, oop v_stateful_self, oop v_self, oop v_suffix) { _enter(&__info62); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(169); /* ifTrue:ifFalse: */ _1= v_self; _2= v_suffix; _line(171); _1=_sendv(s_endsWith_, 2, _1, _2); if (!_1) goto _l16; { _1= v_self; _2= l_63; _3= v_self; _line(172); _3=_sendv(s_size, 1, _3); _4= v_suffix; _line(172); _4=_sendv(s_size, 1, _4); { int _l= (long)_3 >> 1; int _r= (long)_4 >> 1; int _s= (_l - _r); if ((1 & (long)_3 & (long)_4) && ((_s ^ (_s << 1)) >= 0)) _3= (oop)(long)(_s << 1 | 1); else _3= _sendv(s__2d, 2, _3, _4); } _line(172); _1=_sendv(s_copyFrom_to_, 3, _1, _2, _3); } goto _l17; _l16:; { _1= v_self; } _l17:; _leave(); return _1; _leave(); } static struct __methodinfo __info64= { "asByteArray", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 176, 181, &__info62 }; static oop SequenceableCollection__asByteArray(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info64); oop _1= 0; oop _2= 0; _line(176); _1= v_ByteArray; _2= v_self; _line(178); _1=_sendv(s_withAll_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info65= { "asWordArray", "SequenceableCollection", "/Users/piumarta/src/idst/object/st80/SequenceableCollection.st", 0, 181, 185, &__info64 }; static oop SequenceableCollection__asWordArray(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info65); oop _1= 0; oop _2= 0; _line(181); _1= v_WordArray; _2= v_self; _line(183); _1=_sendv(s_withAll_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info= { "__id__init__", "", "SequenceableCollection.st", 0, 0, 0, &__info65 }; void __id__init__SequenceableCollection(struct __libid *__libid) { if (_libid) return; if (!(_libid= __libid)) { fprintf(stderr, "init _libid %p\n", __libid); abort(); } # define GC_add_roots _libid->gc_addRoots GC_INIT(); { struct _Selector *s= 0; for (s= _Selectors; s->name; ++s) *s->addr= _libid->intern(s->name); } _enter(&__info); _libid->infos(&__info, &__info1); _sendv(s__5fimport_, 3, _libid->_object, "Collection", "__id__init__Collection"); v__object= _libid->import("_object"); v__vector= _libid->import("_vector"); v_Object= _libid->import("Object"); v_UndefinedObject= _libid->import("UndefinedObject"); v_StaticBlockClosure= _libid->import("StaticBlockClosure"); v_BlockClosure= _libid->import("BlockClosure"); v_Magnitude= _libid->import("Magnitude"); v_Number= _libid->import("Number"); v_Integer= _libid->import("Integer"); v_SmallInteger= _libid->import("SmallInteger"); v_LargePositiveInteger= _libid->import("LargePositiveInteger"); v_Collection= _libid->import("Collection"); v_SequenceableCollection= _libid->import("SequenceableCollection"); v_ArrayedCollection= _libid->import("ArrayedCollection"); v_Array= _libid->import("Array"); v_WordArray= _libid->import("WordArray"); v_ByteArray= _libid->import("ByteArray"); v_String= _libid->import("String"); v_ImmutableString= _libid->import("ImmutableString"); v_true= _libid->import("true"); v_false= _libid->import("false"); _libid->method(v_SequenceableCollection, s_isSequenceableCollection, (_imp_t)SequenceableCollection__isSequenceableCollection); _libid->method(v_Object, s_isSequenceableCollection, (_imp_t)Object__isSequenceableCollection); l_4= _sendv(s_value_5f_, 2, v_SmallInteger, 10); l_5= _sendv(s_value_5f_, 2, v_SmallInteger, 103); l_7= _sendv(s_value_5f_, 2, v_SmallInteger, 1048575); l_8= _sendv(s_value_5f_, 2, v_SmallInteger, 82); l_6= _sendv(s_function_5f_arity_5f_, 3, v_StaticBlockClosure, b_6, 2); _libid->method(v_SequenceableCollection, s_hash, (_imp_t)SequenceableCollection__hash); _libid->method(v_SequenceableCollection, s__3d, (_imp_t)SequenceableCollection___3d); l_12= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_atAllPut_, (_imp_t)SequenceableCollection__atAllPut_); _libid->method(v_SequenceableCollection, s_atAll_put_, (_imp_t)SequenceableCollection__atAll_put_); l_17= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_first, (_imp_t)SequenceableCollection__first); l_19= _sendv(s_value_5f_, 2, v_SmallInteger, 2); _libid->method(v_SequenceableCollection, s_second, (_imp_t)SequenceableCollection__second); l_21= _sendv(s_value_5f_, 2, v_SmallInteger, 3); _libid->method(v_SequenceableCollection, s_third, (_imp_t)SequenceableCollection__third); l_23= _sendv(s_value_5f_, 2, v_SmallInteger, 4); _libid->method(v_SequenceableCollection, s_fourth, (_imp_t)SequenceableCollection__fourth); l_25= _sendv(s_value_5f_, 2, v_SmallInteger, 5); _libid->method(v_SequenceableCollection, s_fifth, (_imp_t)SequenceableCollection__fifth); _libid->method(v_SequenceableCollection, s_last, (_imp_t)SequenceableCollection__last); l_28= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_lastIndexOf_, (_imp_t)SequenceableCollection__lastIndexOf_); l_30= _sendv(s_value_5f_, 2, v_SmallInteger, 0); _libid->method(v_SequenceableCollection, s_lastIndexOf_startingAt_, (_imp_t)SequenceableCollection__lastIndexOf_startingAt_); l_33= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_from_to_put_, (_imp_t)SequenceableCollection__from_to_put_); l_35= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_do_, (_imp_t)SequenceableCollection__do_); l_38= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_with_do_, (_imp_t)SequenceableCollection__with_do_); l_41= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s__2c, (_imp_t)SequenceableCollection___2c); _libid->method(v_SequenceableCollection, s_swap_with_, (_imp_t)SequenceableCollection__swap_with_); l_44= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_replaceFrom_to_with_, (_imp_t)SequenceableCollection__replaceFrom_to_with_); l_47= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_replaceFrom_to_with_startingAt_, (_imp_t)SequenceableCollection__replaceFrom_to_with_startingAt_); l_49= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_copyFrom_to_, (_imp_t)SequenceableCollection__copyFrom_to_); _libid->method(v_SequenceableCollection, s_copyFrom_, (_imp_t)SequenceableCollection__copyFrom_); l_52= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_collect_startingAt_, (_imp_t)SequenceableCollection__collect_startingAt_); l_55= _sendv(s_value_5f_, 2, v_SmallInteger, 2); _libid->method(v_SequenceableCollection, s_injectFirstInto_, (_imp_t)SequenceableCollection__injectFirstInto_); _libid->method(v_SequenceableCollection, s_beginsWith_, (_imp_t)SequenceableCollection__beginsWith_); l_60= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_endsWith_, (_imp_t)SequenceableCollection__endsWith_); l_63= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_SequenceableCollection, s_withoutSuffix_, (_imp_t)SequenceableCollection__withoutSuffix_); _libid->method(v_SequenceableCollection, s_asByteArray, (_imp_t)SequenceableCollection__asByteArray); _libid->method(v_SequenceableCollection, s_asWordArray, (_imp_t)SequenceableCollection__asWordArray); _leave(); }