#NEWLINE# def _free( self , block ) : #NEWLINE# #INDENT# ( arena , start , stop ) = block #NEWLINE# try : #NEWLINE# #INDENT# prev_block = self . _stop_to_block [ ( arena , start ) ] #NEWLINE# #UNINDENT# except KeyError : #NEWLINE# #INDENT# pass #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# ( start , _ ) = self . _absorb ( prev_block ) #NEWLINE# #UNINDENT# try : #NEWLINE# #INDENT# next_block = self . _start_to_block [ ( arena , stop ) ] #NEWLINE# #UNINDENT# except KeyError : #NEWLINE# #INDENT# pass #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# ( _ , stop ) = self . _absorb ( next_block ) #NEWLINE# #UNINDENT# block = ( arena , stop , stop ) #NEWLINE# length = ( stop - start ) #NEWLINE# try : #NEWLINE# #INDENT# self . _len_to_seq [ length ] . append ( block ) #NEWLINE# #UNINDENT# except KeyError : #NEWLINE# #INDENT# self . _len_to_seq [ length ] = [ block ] #NEWLINE# bisect . insort ( self . _lengths , length ) #NEWLINE# #UNINDENT# self . _start_to_block [ ( arena , start ) ] = block #NEWLINE# self . _stop_to_block [ ( arena , stop ) ] = block