home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / misc / emu / AROSdev.lha / AROS / rom / utility / freenamedobject.c < prev    next >
C/C++ Source or Header  |  1997-01-27  |  2KB  |  89 lines

  1. /*
  2.     $Id: freenamedobject.c,v 1.3 1997/01/27 13:17:13 digulla Exp $
  3.     $Log: freenamedobject.c,v $
  4.     Revision 1.3  1997/01/27 13:17:13  digulla
  5.     Added #include <proto/exec.h>
  6.  
  7.     Revision 1.2  1997/01/27 00:32:31  ldp
  8.     Polish
  9.  
  10.     Revision 1.1  1996/12/18 01:27:35  iaint
  11.     NamedObjects
  12.  
  13.     Desc: FreeNamedObject() - Free a NamedObject.
  14.     Lang: english
  15. */
  16. #include <proto/exec.h>
  17. #include "utility_intern.h"
  18.  
  19. /*****************************************************************************
  20.  
  21.     NAME */
  22.     #include <proto/utility.h>
  23.  
  24.     AROS_LH1(void, FreeNamedObject,
  25.  
  26. /*  SYNOPSIS */
  27.     AROS_LHA(struct NamedObject *, object, A0),
  28.  
  29. /*  LOCATION */
  30.     struct UtilityBase *, UtilityBase, 41, Utility)
  31.  
  32. /*  FUNCTION
  33.     Frees a NamedObject previously allocated by AllocNamedObject().
  34.  
  35.     INPUTS
  36.     object        -    The NamedObject that you wish to free.
  37.  
  38.     RESULT
  39.     The memory used by the NamedObject will be returned to the
  40.     systems free memory pool.
  41.  
  42.     NOTES
  43.  
  44.     EXAMPLE
  45.  
  46.     BUGS
  47.  
  48.     SEE ALSO
  49.     utility/name.h, utility/AllocNamedObject()
  50.  
  51.     INTERNALS
  52.     AllocMem:
  53.         IntNamedObject, NameSpace;
  54.     AllocVec:
  55.         Name, Object.
  56.  
  57.     FreeNamedObject() may have to deal with only a partially allocated
  58.     object from AllocNamedObject() which has come across an error.
  59.  
  60.     HISTORY
  61.     29-10-95    digulla automatically created from
  62.                 utility_lib.fd and clib/utility_protos.h
  63.     11-08-96    iaint   Adapted for AROS code.
  64.     08-10-96    iaint   Modified after discussion in AROS-DEV.
  65.     19-10-96    iaint   Finished above.
  66.  
  67. *****************************************************************************/
  68. {
  69.     AROS_LIBFUNC_INIT
  70.  
  71.     if( object )
  72.     {
  73.     struct IntNamedObject *no = GetIntNamedObject(object);
  74.  
  75.     if(object->no_Object && no->no_FreeObject)
  76.         FreeVec(object->no_Object);
  77.  
  78.     if(no->no_Node.ln_Name)
  79.         FreeVec(no->no_Node.ln_Name);
  80.  
  81.     if(no->no_NameSpace)
  82.         FreeMem(no->no_NameSpace, sizeof(struct NameSpace));
  83.  
  84.     FreeMem(object, sizeof(struct IntNamedObject));
  85.     }
  86.     AROS_LIBFUNC_EXIT
  87.  
  88. } /* FreeNamedObject */
  89.