COS_Object_Type_char,
COS_Object_Type_String,
COS_Object_Type_Symbol,
+ COS_Object_Type_Cons,
COS_Object_Type_Container,
COS_Object_Type_Sexp,
COS_Object_Type_Binary,
#define COS_FAT_OBJECT_TYPE_MIN COS_Object_Type_String
#define COS_OBJECT_TYPE_MAX COS_Object_Type_DB_Object
+extern int (*COS_Object_retain_function_table[]) (COS_Object);
extern int (*COS_Object_release_function_table[]) (COS_Object);
struct COS_Object_ent
#define COS_OBJECT_SYMBOL_P(obj) \
COS_OBJECT_TYPE_P (obj, Symbol)
+#define COS_OBJECT_CONS_P(obj) \
+ COS_OBJECT_TYPE_P (obj, Cons)
+
#define COS_OBJECT_DS_P(obj) \
COS_OBJECT_TYPE_P (obj, DS)
unsigned char* data;
};
+int cos_retain_string (COS_Object obj);
int cos_release_string (COS_Object obj);
COS_Symbol cos_make_symbol (COS_String string);
+int cos_retain_symbol (COS_Object obj);
int cos_release_symbol (COS_Object obj);
cos_symbol_table_intern (COS_Symbol_Table table, COS_object name);
+struct COS_Cons_ent
+{
+ COS_Object_Header header;
+
+ COS_object car;
+ COS_object cdr;
+};
+
+#define COS_CAR(obj) \
+ (((COS_Cons)(obj))->car)
+#define COS_CDR(obj) \
+ (((COS_Cons)(obj))->cdr)
+
+int cos_retain_cons (COS_Object obj);
+int cos_release_cons (COS_Object obj);
+
+
struct COS_Container_ent
{
COS_Object_Header header;
COS_Object* data;
};
+int cos_retain_container (COS_Object obj);
int cos_release_container (COS_Object obj);
char* data;
};
+int cos_retain_sexp (COS_Object obj);
int cos_release_sexp (COS_Object obj);
unsigned char* data;
};
+int cos_retain_binary (COS_Object obj);
int cos_release_binary (COS_Object obj);
+int cos_retain_ds (COS_Object obj);
int cos_release_ds (COS_Object obj);
+int cos_retain_genre (COS_Object obj);
int cos_release_genre (COS_Object obj);
int concord_close_genre (COS_Genre genre);
+int cos_retain_feature (COS_Object obj);
int cos_release_feature (COS_Object obj);
int concord_close_feature (COS_Feature feature);
+int cos_retain_index (COS_Object obj);
int cos_release_index (COS_Object obj);
int concord_close_index (COS_Feature_INDEX table);
COS_Object id;
};
+int cos_retain_db_object (COS_Object obj);
int cos_release_db_object (COS_Object obj);
#if 0