Changeset 272 in dev for trunk/abdev/BasicCompiler_Common/src/Class.cpp
- Timestamp:
- Aug 10, 2007, 9:20:45 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/src/Class.cpp
r270 r272 219 219 if( !isInheritsClass ){ 220 220 // クラスを一つも継承していないとき 221 const CClass *pObjectClass = compiler.GetObjectModule().meta.GetClasses().Find("Object"); 222 if( !pObjectClass ){ 223 SmoothieException::Throw(106,"Object",i); 224 return false; 225 } 226 227 if( !InheritsClass( *pObjectClass, nowLine ) ){ 221 if( !InheritsClass( *compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr(), nowLine ) ){ 228 222 return false; 229 223 } … … 763 757 bool Classes::Insert( CClass *pClass ) 764 758 { 765 // キャッシュしておくクラス766 if( pClass->GetName() == "String" )767 {768 pStringClass=pClass;769 }770 else if( pClass->GetName() == "Object" )771 {772 pObjectClass = pClass;773 }774 775 759 ///////////////////////////////// 776 760 // ハッシュデータに追加 … … 804 788 int i, i2; 805 789 char temporary[VN_SIZE]; 806 807 // Blittable型管理オブジェクトを初期化808 compiler.GetObjectModule().meta.GetBlittableTypes().clear();809 790 810 791 // 名前空間管理 … … 953 934 while(this->Iterator_HasNext()){ 954 935 CClass &objClass = *this->Iterator_GetNext(); 936 if( objClass.isTargetObjectModule == false ) 937 { 938 // 静的リンクライブラリの場合は飛ばす(既にインスタンスが定義済みであるため) 939 continue; 940 } 955 941 956 942 // 名前空間をセット … … 1653 1639 } 1654 1640 1655 CClass *Classes::GetStringClassPtr() const1641 const CClass *Classes::GetStringClassPtr() const 1656 1642 { 1657 1643 if( !pStringClass ){ 1658 SmoothieException::Throw(); 1659 return NULL; 1644 // キャッシュしておく 1645 pStringClass = this->Find( NamespaceScopes( "System" ), "String" ); 1646 1647 if( !pStringClass ) 1648 { 1649 SmoothieException::Throw(); 1650 } 1651 return pStringClass; 1660 1652 } 1661 1653 return pStringClass; 1662 1654 } 1663 CClass *Classes::GetObjectClassPtr() const1655 const CClass *Classes::GetObjectClassPtr() const 1664 1656 { 1665 1657 if( !pObjectClass ){ 1666 SmoothieException::Throw(); 1667 return NULL; 1658 // キャッシュしておく 1659 pObjectClass = this->Find( NamespaceScopes( "System" ), "Object" ); 1660 1661 if( !pObjectClass ) 1662 { 1663 SmoothieException::Throw(); 1664 } 1665 return pObjectClass; 1668 1666 } 1669 1667 return pObjectClass;
Note:
See TracChangeset
for help on using the changeset viewer.