Changeset 288 in dev for trunk/abdev/BasicCompiler32/MakePeHdr.cpp
- Timestamp:
- Aug 17, 2007, 7:36:51 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r287 r288 323 323 324 324 325 //グローバル変数の初期バッファ326 extern BYTE *initGlobalBuf;327 initGlobalBuf=(BYTE *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);328 329 325 //リロケーション情報 330 326 pobj_Reloc=new CReloc(); … … 401 397 InitGCVariables(); 402 398 403 if( compiler.IsStaticLibrary() ){ 399 if( compiler.IsStaticLibrary() ) 400 { 404 401 //_System_StartupProgramの呼び出し 405 402 compiler.codeGenerator.op_call(pSub_System_StartupProgram); … … 812 809 pVar->SetOffsetAddress( 813 810 (pVar->GetOffsetAddress()&0x7FFFFFFF) 814 + compiler.GetObjectModule().meta.GetGlobalVars(). GetAllInitSize()811 + compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize() 815 812 ); 816 813 } … … 885 882 886 883 //リライタブルセクションのファイル上のサイズ(グローバル変数の初期情報のみを格納) 887 if( compiler.GetObjectModule().meta.GetGlobalVars(). GetAllInitSize() % FILE_ALIGNMENT )884 if( compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize() % FILE_ALIGNMENT ) 888 885 { 889 886 FileSize_RWSection = 890 compiler.GetObjectModule().meta.GetGlobalVars(). GetAllInitSize()891 + (FILE_ALIGNMENT-compiler.GetObjectModule().meta.GetGlobalVars(). GetAllInitSize()%FILE_ALIGNMENT);887 compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize() 888 + (FILE_ALIGNMENT-compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize()%FILE_ALIGNMENT); 892 889 } 893 890 else{ 894 if( compiler.GetObjectModule().meta.GetGlobalVars(). GetAllInitSize() )891 if( compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize() ) 895 892 { 896 FileSize_RWSection = compiler.GetObjectModule().meta.GetGlobalVars(). GetAllInitSize();893 FileSize_RWSection = compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize(); 897 894 } 898 895 else FileSize_RWSection=FILE_ALIGNMENT; … … 957 954 958 955 //リライタブルセクションのメモリ上のサイズ 959 i = compiler.GetObjectModule().meta.GetGlobalVars(). GetAllInitSize()956 i = compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize() 960 957 + compiler.GetObjectModule().meta.GetGlobalVars().GetAllSize(); 961 958 if(i%MEM_ALIGNMENT) MemSize_RWSection=i+(MEM_ALIGNMENT-i%MEM_ALIGNMENT); … … 1344 1341 memset((char *)RWSectionHeader.Name,0,IMAGE_SIZEOF_SHORT_NAME); 1345 1342 lstrcpy((char *)RWSectionHeader.Name,".data"); 1346 RWSectionHeader.Misc.VirtualSize= compiler.GetObjectModule().meta.GetGlobalVars(). GetAllInitSize()1343 RWSectionHeader.Misc.VirtualSize= compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize() 1347 1344 + compiler.GetObjectModule().meta.GetGlobalVars().GetAllSize(); 1348 1345 RWSectionHeader.VirtualAddress= MemPos_RWSection; … … 1564 1561 if(bUse_RWSection){ 1565 1562 //リライタブル データ テーブル(グローバル変数の初期バッファ) 1566 initGlobalBuf=(BYTE *)HeapReAlloc(hHeap, 1567 HEAP_ZERO_MEMORY, 1568 initGlobalBuf, 1569 FileSize_RWSection); 1570 WriteFile(hFile,initGlobalBuf,FileSize_RWSection,(DWORD *)&i2,NULL); 1571 i+=i2; 1563 1564 char *temp = (char *)calloc( FileSize_RWSection, 1 ); 1565 memcpy( 1566 temp, 1567 compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetBuffer(), 1568 compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize() 1569 ); 1570 1571 WriteFile(hFile,temp,FileSize_RWSection,(DWORD *)&i2,NULL); 1572 i+=i2; 1573 1574 free( temp ); 1572 1575 } 1573 1576 … … 1644 1647 HeapDefaultFree(pHintTable); 1645 1648 1646 //グローバル変数の初期バッファを解放1647 HeapDefaultFree(initGlobalBuf);1648 1649 1649 //リソースセクションバッファを解放 1650 1650 HeapDefaultFree(RSrcSectionBuffer);
Note:
See TracChangeset
for help on using the changeset viewer.