瀏覽代碼

Added overload supporting functions.

woollybah 9 年之前
父節點
當前提交
e1aa0a3a6f
共有 3 個文件被更改,包括 14 次插入4 次删除
  1. 0 4
      blitz.mod/blitz_classes.i
  2. 12 0
      blitz.mod/blitz_object.c
  3. 2 0
      blitz.mod/blitz_object.h

+ 0 - 4
blitz.mod/blitz_classes.i

@@ -7,10 +7,6 @@ Object^Null{
 	-ToString:String()="bbObjectToString"
 	-Compare:Int( otherObject:Object )="bbObjectCompare"
 	-SendMessage:Object( message:Object,source:object )="bbObjectSendMessage"
-
-	-_reserved1_()="bbObjectReserved"
-	-_reserved2_()="bbObjectReserved"
-	-_reserved3_()="bbObjectReserved"
 	
 }="bbObjectClass"
 

+ 12 - 0
blitz.mod/blitz_object.c

@@ -47,6 +47,18 @@ BBObject *bbObjectAtomicNew( BBClass *clas ){
 	return o;
 }
 
+BBObject *bbObjectNewNC( BBClass *clas ){
+	int flags=( clas->dtor!=bbObjectDtor ) ? BBGC_FINALIZE : 0;
+	BBObject *o=(BBObject*)bbGCAllocObject( clas->instance_size,clas,flags );
+	return o;
+}
+
+BBObject *bbObjectAtomicNewNC( BBClass *clas ){
+	int flags=( clas->dtor!=bbObjectDtor ) ? BBGC_FINALIZE | BBGC_ATOMIC : BBGC_ATOMIC;
+	BBObject *o=(BBObject*)bbGCAllocObject( clas->instance_size,clas,flags );
+	return o;
+}
+
 void bbObjectFree( BBObject *o ){
 	BBClass *clas=o->clas;
 

+ 2 - 0
blitz.mod/blitz_object.h

@@ -62,6 +62,8 @@ extern	BBObject bbNullObject;
 
 BBObject*	bbObjectNew( BBClass *t );
 BBObject*	bbObjectAtomicNew( BBClass *t );
+BBObject*	bbObjectNewNC( BBClass *t );
+BBObject*	bbObjectAtomicNewNC( BBClass *t );
 void		bbObjectFree( BBObject *o );
 
 void		bbObjectCtor( BBObject *o );