re PR ada/47880 (Free in System.Pool_Local raises Storage_Error)

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	PR ada/47880
	* s-pooloc.adb (Deallocate): Fix the case of deallocating the only
	allocated object.

From-SVN: r177332
This commit is contained in:
Thomas Quinot 2011-08-04 10:32:54 +02:00 committed by Arnaud Charlet
parent 7efc3f2d9e
commit a25f5ee669
1 changed files with 5 additions and 2 deletions

View File

@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 1992-2009, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@ -111,7 +111,10 @@ package body System.Pool_Local is
begin
if Prev (Allocated).all = Null_Address then
Pool.First := Next (Allocated).all;
Prev (Pool.First).all := Null_Address;
if Pool.First /= Null_Address then
Prev (Pool.First).all := Null_Address;
end if;
else
Next (Prev (Allocated).all).all := Next (Allocated).all;
end if;