m17n_object(3m17n)

m17n_object3m17n

Usage

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

Overview

@brief Allocate a managed object.
The m17n_object() function allocates a new managed object of
@b size bytes and sets its reference count to 1.  @b freer is the
function that is used to free the object when the reference count
becomes 0.  If @b 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.
@par Return value:
This function returns a newly allocated object.
@par 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);
}

Releases

8 releases since Debian 3.1 (Sarge); the text changed 2 times.

  1. 3.1
  2. 7–12
  3. 13

From m17n-docs 1.8.4-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.