question: re - initialize the protocols array . the protocols array itself must be allocated and filled outside of this class in the client . this method computes the protocol id 's , performs consitency checks and stores an alias of the array in #protocols . in addition , this method determins #max_protocol_index as the maximal index such that all entriesless than #max_protocol_index in #protocols arenon-null . this method can be called several times , for instance to make delayed protocols available at a later stage . internally the protocols argument is not copied , onlyan alias is stored . changing the protocols array is permitted under the condition that the currently running protocol does not change its position in the array and remains itself unchanged . after changing , #set_protocols set_protocols must be called before the nextprotocol is selected . this is necessary even if the array itself stays the same and only fields in the array are changed . concode_field_sep Protocol[] protocols concode_elem_sep short max_protocol_index concode_field_sep short get_max_protocol_index concode_elem_sep void check_protocols concode_elem_sep Protocol[] get_protocols concode_elem_sep Protocol get_protocol
target: void function ( Protocol [ ] arg0 ) { this . protocols = arg0 ; max_protocol_index = ( short ) arg0 . length ; for ( short loc0 = 0 ; loc0 < arg0 . length ; loc0 ++ ) { if ( arg0 [ loc0 ] == null ) { max_protocol_index = loc0 ; break ; } arg0 [ loc0 ] . protocol_id = ( byte ) loc0 ; } check_protocols ( ) ; return ; }