Changeset 257 in dev for trunk/abdev/BasicCompiler64/MakePeHdr.cpp
- Timestamp:
- Aug 2, 2007, 4:17:27 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/MakePeHdr.cpp
r255 r257 129 129 ////////////////// 130 130 // データテーブル 131 compiler. GetDataTable().Init();131 compiler.objectModule.dataTable.Clear(); 132 132 if(bDebugCompile){ 133 compiler. GetDataTable().Add( (long)0x00000002 );133 compiler.objectModule.dataTable.Add( (long)0x00000002 ); 134 134 } 135 135 … … 155 155 156 156 //関数ポインタ情報を初期化 157 compiler. GetMeta().GetProcPointers().clear();157 compiler.objectModule.meta.GetProcPointers().clear(); 158 158 159 159 // 名前空間情報を取得 160 160 NamespaceSupporter::CollectNamespaces( 161 161 Smoothie::Lexical::source.GetBuffer(), 162 compiler. GetMeta().GetNamespaces()162 compiler.objectModule.meta.GetNamespaces() 163 163 ); 164 164 … … 166 166 // CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。 167 167 // ※オブジェクトの内容までは取得しない 168 compiler. GetMeta().GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );168 compiler.objectModule.meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source ); 169 169 170 170 //TypeDef情報を初期化 171 compiler. GetMeta().GetTypeDefs().Init();171 compiler.objectModule.meta.GetTypeDefs().Init(); 172 172 173 173 //定数情報を取得 … … 178 178 CollectProcedures( 179 179 Smoothie::Lexical::source, 180 compiler. GetMeta().GetUserProcs(),181 compiler. GetMeta().GetDllProcs()180 compiler.objectModule.meta.GetUserProcs(), 181 compiler.objectModule.meta.GetDllProcs() 182 182 ); 183 183 184 184 // クラス情報を取得(※注 - CollectProceduresの後に呼び出す) 185 compiler. GetMeta().GetClasses().GetAllClassInfo();185 compiler.objectModule.meta.GetClasses().GetAllClassInfo(); 186 186 187 187 // サブルーチン(ユーザー定義、DLL関数)のイテレータの準備 188 compiler. GetMeta().GetUserProcs().Iterator_Init();189 compiler. GetMeta().GetDllProcs().Iterator_Init();188 compiler.objectModule.meta.GetUserProcs().Iterator_Init(); 189 compiler.objectModule.meta.GetDllProcs().Iterator_Init(); 190 190 191 191 /* 192 if( !compiler. GetMeta().WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )192 if( !compiler.objectModule.meta.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) ) 193 193 { 194 194 MessageBox(0,"XML書き込みに失敗","test",0); … … 200 200 } 201 201 202 if( !compiler. GetMeta().WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )202 if( !compiler.objectModule.meta.WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) ) 203 203 { 204 204 MessageBox(0,"バイナリ書き込みに失敗","test",0); … … 209 209 MessageBox(0,"バイナリ読み込みに失敗","test",0); 210 210 } 211 if( !compiler. GetMeta().WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )211 if( !compiler.objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) ) 212 212 { 213 213 MessageBox(0,"バイナリ書き込みに失敗","test",0); … … 218 218 MessageBox(0,"バイナリ読み込みに失敗","test",0); 219 219 } 220 compiler. GetMeta()= (*pTempMeta);*/220 compiler.objectModule.meta = (*pTempMeta);*/ 221 221 222 222 … … 384 384 385 385 // コード生成対象を選択 386 compiler.codeGenerator.Select( compiler. globalNativeCode );386 compiler.codeGenerator.Select( compiler.objectModule.globalNativeCode ); 387 387 388 388 trace_for_sourcecodestep( "★★★ グローバル領域のコンパイルを開始" ); … … 407 407 408 408 //クラスに属する静的メンバを定義 409 compiler. GetMeta().GetClasses().InitStaticMember();409 compiler.objectModule.meta.GetClasses().InitStaticMember(); 410 410 411 411 //グローバル実行領域をコンパイル開始 … … 524 524 // 使用するDLL関数のチェック 525 525 //////////////////////////////// 526 compiler. GetMeta().GetDllProcs().Iterator_Reset();527 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )526 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 527 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 528 528 { 529 const DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();529 const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 530 530 531 531 if( !pDllProc->IsUsing() ){ … … 598 598 //辞書順にサーチ 599 599 temporary[0]=0; 600 compiler. GetMeta().GetUserProcs().Iterator_Reset();601 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )600 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 601 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 602 602 { 603 pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();603 pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 604 604 if(pUserProc->IsExport()){ 605 605 if(temporary[0]=='\0'){ … … 702 702 int ImportDllNum=0; 703 703 704 compiler. GetMeta().GetDllProcs().Iterator_Reset();705 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )704 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 705 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 706 706 { 707 const DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();707 const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 708 708 709 709 if( !pDllProc->IsUsing() ){ … … 741 741 pImportDescriptor[i].Name=i*0x10; //※すぐ下で再計算 742 742 743 compiler. GetMeta().GetDllProcs().Iterator_Reset();744 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )743 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 744 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 745 745 { 746 const DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();746 const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 747 747 748 748 if( !pDllProc->IsUsing() ){ … … 779 779 pHintTable=(char *)HeapAlloc(hHeap,0,HintAllocSize); 780 780 for(i=0,i5=0;i<ImportDllNum;i++){ 781 compiler. GetMeta().GetDllProcs().Iterator_Reset();782 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )781 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 782 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 783 783 { 784 DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();784 DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 785 785 786 786 if( !pDllProc->IsUsing() ){ … … 830 830 //(デバッグ情報で利用される) 831 831 extern int AllInitGlobalVarSize; 832 BOOST_FOREACH( Variable *pVar, compiler. GetMeta().GetGlobalVars() ){832 BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){ 833 833 if(pVar->GetOffsetAddress()&0x80000000){ 834 834 pVar->SetOffsetAddress( … … 915 915 916 916 //データセクションのファイル上のサイズ 917 if(compiler. GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetDataTable().GetSize()%FILE_ALIGNMENT);918 else FileSize_DataSection=compiler. GetDataTable().GetSize();917 if(compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.objectModule.dataTable.GetSize()+(FILE_ALIGNMENT-compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT); 918 else FileSize_DataSection=compiler.objectModule.dataTable.GetSize(); 919 919 if(FileSize_DataSection) bUse_DataSection=1; 920 920 else bUse_DataSection=0; … … 1077 1077 LookupSize; //ルックアップテーブル 1078 1078 1079 compiler. GetMeta().GetDllProcs().Iterator_Reset();1080 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )1079 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 1080 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 1081 1081 { 1082 const DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();1082 const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 1083 1083 1084 1084 if( !pDllProc->IsUsing() ){ … … 1098 1098 //////////////////////////////////////// 1099 1099 //仮想関数データテーブルスケジュール 1100 compiler. GetMeta().GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);1100 compiler.objectModule.meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection); 1101 1101 1102 1102 … … 1631 1631 if(bUse_DataSection){ 1632 1632 //データ テーブル 1633 WriteFile(hFile,compiler. GetDataTable().GetPtr(),compiler.GetDataTable().GetSize(),(DWORD *)&i2,NULL);1633 WriteFile(hFile,compiler.objectModule.dataTable.GetPtr(),compiler.objectModule.dataTable.GetSize(),(DWORD *)&i2,NULL); 1634 1634 i+=i2; 1635 1635 } … … 1743 1743 1744 1744 //クラスに関するメモリを解放 1745 compiler. GetMeta().GetClasses().Clear();1745 compiler.objectModule.meta.GetClasses().Clear(); 1746 1746 }
Note:
See TracChangeset
for help on using the changeset viewer.