\r
#ifdef DEBUG\r
//#define DEBUG_MEMORY_ALLOCATION\r
+//#define DEBUG_MEMORY_REFERENCE_COUNT\r
#endif\r
\r
//\r
//ライブラリ共通構造体ヘッダ\r
uint signature;\r
uint typeid;\r
+ uint referenceCount;\r
+ void (*destructor)(void **structrue);\r
};\r
\r
//\r
\r
#define CHNLIB_UIPArray_INDEX_NOTFOUND -1\r
\r
+#define retain(structure) CHNLIB_Retain((void **) &structure)\r
+#define release(structure) CHNLIB_Release((void **) &structure)\r
+#define autorelease(structure) CHNLIB_AutoRelease(structure)\r
+\r
//\r
//Declare library functions\r
//\r
uint CHNLIB_StructureHeader_GetTypeID(const void *structure);\r
void *CHNLIB_System_AllocateMemory_Strict(int size, const char filename[], int line, const char funcname[]);\r
void CHNLIB_System_FreeMemory(void *p, const char filename[], int line, const char funcname[]);\r
-\r
+void CHNLIB_Retain(void **structure);\r
+void CHNLIB_Release(void **structure);\r
+void *CHNLIB_AutoRelease(void *structure);\r
//@chnlib00.c\r
typedef struct CHNLIB_UIPARRAY CHNLIB_UIPArray;\r
struct CHNLIB_UIP_ARRAY;\r
int CHNLIB_UIPArray_GetIndexByData32(const CHNLIB_UIPArray *array, uint data32);\r
//----配列のコピー\r
CHNLIB_UIPArray *CHNLIB_UIPArray_CopyArray(const CHNLIB_UIPArray *source);\r
-//----配列のソート\r
-CHNLIB_UIPArray *CHNLIB_UIPArray_SortInDescendingOrderByData32(const CHNLIB_UIPArray *array);\r
+//----配列のソートしたものを新たに取得\r
+CHNLIB_UIPArray *CHNLIB_UIPArray_GetSortedInDescendingOrderByData32(const CHNLIB_UIPArray *array);\r
\r
//@chnlib01.c\r
typedef struct CHNLIB_STRING CHNLIB_String;\r