@@ -978,13 +978,14 @@ mf_ext_close(#handle{filename = FName, curF = CurF,
978978% % -> {ok, handle()} | throw(FileError)
979979change_size_wrap (# handle {filename = FName } = Handle , {NewMaxB , NewMaxF }, Version ) ->
980980 {_MaxB , MaxF } = get_wrap_size (Handle ),
981+ BiggerMaxF = lists :max ([MaxF , get_old_max_f (Handle # handle .maxF )]),
981982 write_size_file (read_write , FName , NewMaxB , NewMaxF , Version ),
982983 if
983- NewMaxF > MaxF ->
984+ NewMaxF > BiggerMaxF ->
984985 remove_files (wrap , FName , MaxF + 1 , NewMaxF ),
985986 {ok , Handle # handle {maxB = NewMaxB , maxF = NewMaxF }};
986- NewMaxF < MaxF ->
987- {ok , Handle # handle {maxB = NewMaxB , maxF = {NewMaxF , MaxF }}};
987+ NewMaxF < BiggerMaxF ->
988+ {ok , Handle # handle {maxB = NewMaxB , maxF = {NewMaxF , BiggerMaxF }}};
988989 true ->
989990 {ok , Handle # handle {maxB = NewMaxB , maxF = NewMaxF }}
990991 end .
@@ -1796,3 +1797,8 @@ file_error(FileName, {error, Error}) ->
17961797file_error_close (Fd , FileName , {error , Error }) ->
17971798 _ = file :close (Fd ),
17981799 throw ({error , {file_error , FileName , Error }}).
1800+
1801+ get_old_max_f ({_ , OldMaxF }) ->
1802+ OldMaxF ;
1803+ get_old_max_f (MaxF ) ->
1804+ MaxF .
0 commit comments