--:::::::::: --tagtolpt.adb --:::::::::: with Unchecked_Deallocation; package body tag_to_lpt is procedure Free is new Unchecked_Deallocation (Object_Type'Class, Class_Ptr); procedure Initialize (Pntr: in out Class_Ptr) is begin -- Initialize Pntr := null; end Initialize; procedure Finalize (Pntr: in out Class_Ptr) is begin -- Finalize if Pntr /= null then Free (Pntr); end if; end Finalize; procedure Copy (Source: in Class_Ptr; Target: in out Class_Ptr) is begin -- Copy Target := new Object_Type'Class'(Source.all); end Copy; procedure Swap (Source, Target: in out Class_Ptr) is Temp: Class_Ptr := Source; begin -- Swap Source:= Target; Target:= Temp; end Swap; end tag_to_lpt;