Explorar o código

[brl.reflection] Add SetObject() method

Next to SetLong(), SetString() an explicit SetObject() was missing so you were not able to set a field to null without casting "object(null)" first.
Ronny Otto %!s(int64=6) %!d(string=hai) anos
pai
achega
7bfb19d202
Modificáronse 1 ficheiros con 11 adicións e 4 borrados
  1. 11 4
      reflection.mod/reflection.bmx

+ 11 - 4
reflection.mod/reflection.bmx

@@ -1329,7 +1329,7 @@ Type TField Extends TMember
 	Method Get:Object( obj:Object )
 		Return _Get( bbRefFieldPtr( obj,_index ),_typeId )
 	End Method
-	
+
 	Rem
 	bbdoc: Get #Byte field value
 	End Rem
@@ -1356,7 +1356,7 @@ Type TField Extends TMember
 				Return (Double Ptr p)[0]
 		End Select
 	End Method
-	
+
 	Rem
 	bbdoc: Get #Short field value
 	End Rem
@@ -1437,7 +1437,7 @@ Type TField Extends TMember
 				Return (Double Ptr p)[0]
 		End Select
 	End Method
-	
+
 	Rem
 	bbdoc: Get long field value
 	End Rem
@@ -1491,7 +1491,7 @@ Type TField Extends TMember
 				Return (Double Ptr p)[0]
 		End Select
 	End Method
-	
+
 	Rem
 	bbdoc: Get #Size_T field value
 	End Rem
@@ -1650,6 +1650,13 @@ Type TField Extends TMember
 		SetDouble(obj, value)
 	End Method
 
+	Rem
+	bbdoc: Set #Object field value
+	End Rem
+	Method SetObject( obj:Object,value:Object )
+		_Assign bbRefFieldPtr( obj,_index ),_typeId,value
+	End Method
+
 	Rem
 	bbdoc: Set #Byte field value
 	End Rem