Changeset 413
- Timestamp:
- Feb 24, 2008, 7:03:07 PM (17 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Include/Classes/ActiveBasic/Core/TypeInfo.ab
r403 r413 10 10 name As String 11 11 fullName As String 12 13 ptrType As TypeBaseImpl 14 ptrLevel As Long 12 15 13 16 ' メンバ情報 … … 27 30 This.fullName = fullName 28 31 This.baseType = Nothing 32 33 ptrType = Nothing 34 ptrLevel = 0 29 35 End Sub 30 36 31 37 Sub ~TypeBaseImpl() 32 38 End Sub 39 40 Sub PtrLevelUp() 41 ptrLevel ++ 42 fullName = "*" + fullName 43 End Sub 44 45 Function Clone() As TypeBaseImpl 46 Dim result = New TypeBaseImpl( strNamespace, name, fullName ) 47 result.SetBaseType( baseType ) 48 result.SetMembers( memberNames, memberTypeFullNames, memberCounts ) 49 result.memberInfosCache = This.memberInfosCache 50 result.ptrLevel = This.ptrLevel 51 Return result 52 End Function 33 53 34 54 Public … … 51 71 End Sub 52 72 73 Function GetPtrType() As TypeBaseImpl 74 If Object.ReferenceEquals( ptrType, Nothing ) Then 75 Dim clone = This.Clone() 76 77 ptrType = clone 78 ptrType.PtrLevelUp() 79 End If 80 Return ptrType 81 End Function 82 53 83 54 84 '---------------------------------------------------------------- … … 89 119 90 120 Override Function IsPointer() As Boolean 91 Return False121 Return ( ptrLevel > 0 ) 92 122 End Function 93 123 … … 258 288 End If 259 289 290 If fullName[0] = &H2A Then ' fullName[0] = '*' 291 Dim result = Search( fullName.Substring( 1 ) ) 292 Return result.GetPtrType() 293 End If 294 260 295 Search = types.Item(fullName) 261 296 -
trunk/Include/system/gc.sbp
r400 r413 471 471 End If 472 472 473 If Object.ReferenceEquals( classTypeInfo, ActiveBasic.Core._System_TypeBase.selfTypeInfo ) Then 474 ' TypeInfoクラスの場合はTypeBaseImplクラスとして扱う 475 classTypeInfo = _System_TypeBase_Search( "ActiveBasic.Core.TypeBaseImpl" ) As ActiveBasic.Core._System_TypeForClass 476 End If 477 473 478 /* 474 479 _System_DebugOnly_OutputDebugString( " (scanning object)" ) -
trunk/TestCase/SimpleTestCase/TypeInfoTest.ab
r403 r413 4 4 Sub TestMain() 5 5 Dim str As String 6 /* 6 7 7 Dim memberInfos = str.GetType().GetMembers() 8 8 UnitTest( "TypeInfoTest(MemberInfo) ... ", True ) … … 10 10 UnitTest( Ex"\t" + memberInfo.Name + " As " + memberInfo.MemberType.FullName, True ) 11 11 Next 12 */ 12 13 13 End Sub 14 14
Note:
See TracChangeset
for help on using the changeset viewer.