Changeset 637 in dev for trunk/ab5.0/abdev/ab_common/src/Lexical/ObjectModule.cpp
- Timestamp:
- Jun 11, 2008, 10:10:26 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/ab_common/src/Lexical/ObjectModule.cpp
r636 r637 56 56 57 57 58 void ObjectModule::StaticLink( ObjectModule &objectModule )58 void ObjectModule::StaticLink( ObjectModule &objectModule, bool isSll ) 59 59 { 60 60 const std::vector<int> relationTable = this->GetRelationTable( objectModule.relationalObjectModuleNames ); … … 65 65 meta.StaticLink( objectModule.meta, dataSectionBaseOffset, relationTable ); 66 66 67 // グローバル ネイティブコードを結合 68 objectModule.globalNativeCode.ResetDataSectionBaseOffset( dataSectionBaseOffset ); 69 objectModule.globalNativeCode.ResetSourceIndexes( relationTable ); 70 globalNativeCode.PutEx( objectModule.globalNativeCode ); 71 72 // データテーブルを結合 73 objectModule.dataTable.ResetDataSectionBaseOffset( dataSectionBaseOffset ); 74 dataTable.Add( objectModule.dataTable ); 67 if( !isSll ) 68 { 69 // グローバル ネイティブコードを結合 70 objectModule.globalNativeCode.ResetDataSectionBaseOffset( dataSectionBaseOffset ); 71 objectModule.globalNativeCode.ResetRelationalObjectModuleIndex( relationTable ); 72 globalNativeCode.PutEx( objectModule.globalNativeCode ); 73 74 // データテーブルを結合 75 objectModule.dataTable.ResetDataSectionBaseOffset( dataSectionBaseOffset ); 76 dataTable.Add( objectModule.dataTable ); 77 } 78 79 // 依存関係を解決 80 this->Resolve(); 75 81 76 82 // TODO: basbufがいらなくなったら消す 77 83 extern char *basbuf; 78 84 basbuf = this->source.GetBuffer(); 85 } 86 87 void ObjectModule::Resolve() 88 { 89 this->meta.Resolve(); 90 91 // グローバルネイティブコードを解決(スケジュールを解決する) 92 this->globalNativeCode.Resolve(); 93 94 // データテーブルを解決(スケジュールを解決する) 95 this->dataTable.Resolve(); 79 96 } 80 97
Note:
See TracChangeset
for help on using the changeset viewer.