Scroll to navigation

m17n_object(3m17n) The m17n Library m17n_object(3m17n)

NAME

m17n_object -

SYNOPSIS

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

DESCRIPTION

@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); }

COPYRIGHT

Copyright (C) 2001 Information-technology Promotion Agency (IPA)
Copyright (C) 2001-2011 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>.

Mon Sep 25 2023 Version 1.8.4