typedef struct
{
/**en Reference count of the object. */
+ /**ja ¥ª¥Ö¥¸¥§¥¯¥È¤Î»²¾È¿ô. */
unsigned ref_count : 16;
unsigned ref_count_extended : 1;
/**en A flag bit used for various perpose. */
+ /**ja ¤µ¤Þ¤¶¤Þ¤ÊÌÜŪ¤ËÍѤ¤¤é¤ì¤ë¥Õ¥é¥°¥Ó¥Ã¥È. */
unsigned flag : 15;
union {
/**en If <ref_count_extended> is zero, a function to free the
object. */
+ /**ja <ref_count_extended> ¤¬ 0 ¤Ê¤é¤Ð¥ª¥Ö¥¸¥§¥¯¥È¤ò²òÊü¤¹¤ë´Ø¿ô. */
void (*freer) (void *);
/**en If <ref_count_extended> is nonzero, a pointer to the
struct M17NObjectRecord. */
+ /**ja <ref_count_extended> ¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¹½Â¤ÂÎ M17NObjectRecord ¤Ø¤Î¥Ý¥¤¥ó¥¿. */
M17NObjectRecord *record;
} u;
} M17NObject;
/**en Increment the reference count of OBJECT if the count is not
0. */
+/**ja OBJECT ¤Î»²¾È¿ô¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð 1 Áý¤ä¤¹. */
#define M17N_OBJECT_REF(object) \
do { \
/**en Decrement the reference count of OBJECT if the count is greater
- than 0. In that case, if the count becomes 0, free OBJECT. */
+ than 0. In that case, if the count becomes 0, free OBJECT. */
+/**ja OBJECT ¤Î»²¾È¿ô¤¬ 0 ¤è¤êÂ礤±¤ì¤Ð 1 ¸º¤é¤¹¡£¸º¤é¤·¤Æ 0 ¤Ë¤Ê¤ì¤Ð
+ OBJECT ¤ò²òÊü¤¹¤ë. */
#define M17N_OBJECT_UNREF(object) \
do { \