Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
m17n_object(3m17n)		 Version 1.5.5		    m17n_object(3m17n)

NAME
       m17n_object - Allocate a	managed	object.

SYNOPSIS
       void* m17n_object (int size, void(*)(void *) freer)

DESCRIPTION
       Allocate	a managed object.

       The m17n_object() function allocates a new managed object of size bytes
       and sets	its reference count to 1.  freer is the	function that is used
       to free the object when the reference count becomes 0. If freer is
       NULL, the object	is freed by the	free() function.

       The heading bytes of the	allocated object is occupied by
       M17NObjectHead.	That area is reserved for the m17n library and
       application programs should never touch it.

RETURN VALUE
	   This	function returns a newly allocated object.

ERRORS
	   This	function never fails.

Example:
	   typedef struct
	   {
	     M17NObjectHead head;
	     int mem1;
	     char *mem2;
	   } MYStruct;

	   void
	   my_freer (void *obj)
	   {
	     free (((MYStruct *) obj)->mem2);
	     free (obj);
	   }

	   void
	   my_func (MText *mt, MSymbol key, int	num, char *str)
	   {
	     MYStruct *st = m17n_object	(sizeof	(MYStruct), my_freer);

	     st->mem1 =	num;
	     st->mem2 =	strdup (str);
	     /*	KEY must be a managing key.   */
	     mtext_put_prop (mt, 0, mtext_len (mt), key, st);
	     /*	This sets the reference	count of ST back to 1.	*/
	     m17n_object_unref (st);
	   }

COPYRIGHT
       Copyright (C) 2001 Information-technology Promotion Agency (IPA)
       Copyright (C) 2001-2009 National	Institute of Advanced Industrial
       Science and Technology (AIST)
       Permission is granted to	copy, distribute and/or	modify this document
       under the terms of the GNU Free Documentation License
       <http://www.gnu.org/licenses/fdl.html>.

				  15 Oct 2009		    m17n_object(3m17n)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | Example: | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=m17n_object&sektion=3m17n&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help