support for MEMF_MANAGED memory extended. Now pools can be handled by
[AROS.git] / rom / exec / freevecpooled.c
blob4603c40ea0511e943ba1c4a54e9b6e680b6129db
1 /*
2 Copyright � 2003-2011, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #include <aros/libcall.h>
7 #include <proto/exec.h>
8 #include <exec/memheaderext.h>
10 #include "exec_intern.h"
12 AROS_LH2(void, FreeVecPooled,
13 AROS_LHA(APTR, pool, D0),
14 AROS_LHA(APTR, memory, D1),
15 struct ExecBase *, SysBase, 170, Exec)
17 AROS_LIBFUNC_INIT
19 struct MemHeaderExt *mhe = (struct MemHeaderExt *)pool;
21 if (mhe->mhe_MemHeader.mh_Attributes & MEMF_MANAGED)
23 if (mhe->mhe_FreeVec)
24 mhe->mhe_FreeVec(mhe, memory);
26 else
28 if (memory != NULL)
30 IPTR *real = (IPTR *) memory;
31 IPTR size = *--real;
33 FreePooled(pool, real, size);
36 AROS_LIBFUNC_EXIT
37 } /* FreeVecPooled() */