Changeset 288 in dev


Ignore:
Timestamp:
Aug 17, 2007, 7:36:51 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/BasicCompiler.vcproj

    r287 r288  
    12521252                    RelativePath="..\BasicCompiler_Common\src\BoostSerializationSupport.cpp"
    12531253                    >
     1254                    <FileConfiguration
     1255                        Name="Debug|Win32"
     1256                        >
     1257                        <Tool
     1258                            Name="VCCLCompilerTool"
     1259                            UsePrecompiledHeader="0"
     1260                        />
     1261                    </FileConfiguration>
     1262                    <FileConfiguration
     1263                        Name="Release|Win32"
     1264                        >
     1265                        <Tool
     1266                            Name="VCCLCompilerTool"
     1267                            UsePrecompiledHeader="0"
     1268                        />
     1269                    </FileConfiguration>
    12541270                </File>
    12551271            </Filter>
  • trunk/abdev/BasicCompiler32/Compile_Var.cpp

    r276 r288  
    716716
    717717bool SetInitGlobalData(int offset,const Type &type,const Subscripts &subscripts,const char *lpszInitBuf){
    718     extern BYTE *initGlobalBuf;
    719718    int i2,i3;
    720719    char temporary[VN_SIZE];
     
    820819
    821820    if( type.IsDouble() ){
    822         *(double *)(initGlobalBuf+offset)=(double)dbl;
     821        compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.Overwrite(
     822            offset,
     823            (const char *)&dbl,
     824            sizeof(double)
     825        );
    823826    }
    824827    else if( type.IsSingle() ){
    825         *(float *)(initGlobalBuf+offset)=(float)dbl;
     828        float flt = (float)dbl;
     829        compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.Overwrite(
     830            offset,
     831            (const char *)&flt,
     832            sizeof(float)
     833        );
    826834    }
    827835    else if( type.Is64() ){
    828         *(_int64 *)(initGlobalBuf+offset)=i64data;
     836        compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.Overwrite(
     837            offset,
     838            (const char *)&i64data,
     839            sizeof(_int64)
     840        );
    829841    }
    830842    else if( type.IsLong() || type.IsDWord() || type.IsPointer() ){
     
    844856        }
    845857        else{
    846             *(DWORD *)(initGlobalBuf+offset)=(DWORD)i64data;
     858            long l = (long)i64data;
     859            compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.Overwrite(
     860                offset,
     861                (const char *)&l,
     862                sizeof(long)
     863            );
    847864        }
    848865    }
    849866    else if( type.IsWord() || type.IsInteger() ){
    850         *(WORD *)(initGlobalBuf+offset)=(WORD)i64data;
     867        short s = (short)i64data;
     868        compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.Overwrite(
     869            offset,
     870            (const char *)&s,
     871            sizeof(short)
     872        );
    851873    }
    852874    else if( type.IsSByte() || type.IsByte() || type.IsBoolean() ){
    853         *(BYTE *)(initGlobalBuf+offset)=(BYTE)i64data;
     875        char c = (char)i64data;
     876        compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.Overwrite(
     877            offset,
     878            (const char *)&c,
     879            sizeof(char)
     880        );
    854881    }
    855882
     
    10931120                // 呼び出し側のオフセットズレを考慮する
    10941121
    1095                 if( 0 == ( UserProc::CompilingUserProc().RealParams().GetMemorySize() + PTR_SIZE/*ret分*/ ) % alignment ){
     1122                if( 0 == ( UserProc::CompilingUserProc().RealParams().GetMemorySize() + PTR_SIZE /* ret分 */ ) % alignment ){
    10961123                    AllLocalVarSize += PTR_SIZE;
    10971124                }
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r287 r288  
    323323
    324324
    325     //グローバル変数の初期バッファ
    326     extern BYTE *initGlobalBuf;
    327     initGlobalBuf=(BYTE *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
    328 
    329325    //リロケーション情報
    330326    pobj_Reloc=new CReloc();
     
    401397        InitGCVariables();
    402398
    403         if( compiler.IsStaticLibrary() ){
     399        if( compiler.IsStaticLibrary() )
     400        {
    404401            //_System_StartupProgramの呼び出し
    405402            compiler.codeGenerator.op_call(pSub_System_StartupProgram);
     
    812809            pVar->SetOffsetAddress(
    813810                (pVar->GetOffsetAddress()&0x7FFFFFFF)
    814                 + compiler.GetObjectModule().meta.GetGlobalVars().GetAllInitSize()
     811                + compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize()
    815812            );
    816813        }
     
    885882
    886883    //リライタブルセクションのファイル上のサイズ(グローバル変数の初期情報のみを格納)
    887     if( compiler.GetObjectModule().meta.GetGlobalVars().GetAllInitSize() % FILE_ALIGNMENT )
     884    if( compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize() % FILE_ALIGNMENT )
    888885    {
    889886        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);
    892889    }
    893890    else{
    894         if( compiler.GetObjectModule().meta.GetGlobalVars().GetAllInitSize() )
     891        if( compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize() )
    895892        {
    896             FileSize_RWSection = compiler.GetObjectModule().meta.GetGlobalVars().GetAllInitSize();
     893            FileSize_RWSection = compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize();
    897894        }
    898895        else FileSize_RWSection=FILE_ALIGNMENT;
     
    957954
    958955    //リライタブルセクションのメモリ上のサイズ
    959     i = compiler.GetObjectModule().meta.GetGlobalVars().GetAllInitSize()
     956    i = compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize()
    960957        + compiler.GetObjectModule().meta.GetGlobalVars().GetAllSize();
    961958    if(i%MEM_ALIGNMENT) MemSize_RWSection=i+(MEM_ALIGNMENT-i%MEM_ALIGNMENT);
     
    13441341    memset((char *)RWSectionHeader.Name,0,IMAGE_SIZEOF_SHORT_NAME);
    13451342    lstrcpy((char *)RWSectionHeader.Name,".data");
    1346     RWSectionHeader.Misc.VirtualSize=           compiler.GetObjectModule().meta.GetGlobalVars().GetAllInitSize()
     1343    RWSectionHeader.Misc.VirtualSize=           compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize()
    13471344                                                + compiler.GetObjectModule().meta.GetGlobalVars().GetAllSize();
    13481345    RWSectionHeader.VirtualAddress=             MemPos_RWSection;
     
    15641561    if(bUse_RWSection){
    15651562        //リライタブル データ テーブル(グローバル変数の初期バッファ)
    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 );
    15721575    }
    15731576
     
    16441647    HeapDefaultFree(pHintTable);
    16451648
    1646     //グローバル変数の初期バッファを解放
    1647     HeapDefaultFree(initGlobalBuf);
    1648 
    16491649    //リソースセクションバッファを解放
    16501650    HeapDefaultFree(RSrcSectionBuffer);
  • trunk/abdev/BasicCompiler32/stdafx.h

    r218 r288  
    1818
    1919#include "../BasicCompiler_Common/common.h"
     20
     21#include <Compiler.h>
  • trunk/abdev/BasicCompiler_Common/Compile.cpp

    r276 r288  
    1919
    2020#include <Exception.h>
    21 
    22 //グローバル変数初期バッファ
    23 BYTE *initGlobalBuf;
    2421
    2522//With情報
  • trunk/abdev/BasicCompiler_Common/Debug.cpp

    r280 r288  
    337337        WriteProcessMemory(hDebugProcess,
    338338            (void *)(ULONG_PTR)(pobj_DBDebugSection->ppobj_ds[i]->dwImageBase + pobj_DBDebugSection->ppobj_ds[i]->dwRVA_RWSection),
    339             _DebugSys_dwThreadID,sizeof(DWORD)*MAX_DEBUG_THREAD,&lpAccBytes);
     339            _DebugSys_dwThreadID,
     340            sizeof(DWORD)*MAX_DEBUG_THREAD,
     341            &lpAccBytes
     342        );
    340343    }
    341344}
  • trunk/abdev/BasicCompiler_Common/VariableOpe.cpp

    r275 r288  
    10081008        int result = 0;
    10091009        if( !pVar->GetType().IsObject() ){
    1010             //初期バッファにデータをセット
    1011             extern BYTE *initGlobalBuf;
    1012             initGlobalBuf = (BYTE *)HeapReAlloc(
    1013                 hHeap,
    1014                 HEAP_ZERO_MEMORY,
    1015                 initGlobalBuf,
    1016                 compiler.GetObjectModule().meta.GetGlobalVars().GetAllInitSize()
    1017             );
    1018 
    10191010            result = SetInitGlobalData(pVar->GetOffsetAddress(),
    10201011                pVar->GetType(),
  • trunk/abdev/BasicCompiler_Common/common.h

    r287 r288  
    4747
    4848#ifdef _AMD64_
    49 #define PLATFORM    64
     49    #define PLATFORM    64
    5050#else
    5151#define PLATFORM    32
    52 typedef long LONG_PTR;
    53 typedef DWORD ULONG_PTR;
     52    #ifndef LONG_PTR
     53        typedef long LONG_PTR;
     54        typedef DWORD ULONG_PTR;
     55    #endif
    5456#endif
    5557
  • trunk/abdev/BasicCompiler_Common/include/Binary.h

    r287 r288  
    6161            }
    6262            buffer = (char *)realloc( buffer, allocateSize );
     63
     64            // 再確保した部分を0で埋める
     65            memset( buffer + size, 0, allocateSize - size );
    6366        }
    6467    }
     
    9699        return size;
    97100    }
     101    void Resize( int newSize )
     102    {
     103        Realloc( newSize );
     104        size = newSize;
     105    }
    98106
    99107    long GetLong( int pos ) const
     
    102110    }
    103111
     112    void Overwrite( int pos, const char *buffer, int size )
     113    {
     114        memcpy( this->buffer + pos, buffer, size );
     115    }
    104116    void Overwrite( int pos, char c )
    105117    {
     
    117129        memcpy( this->buffer + this->size, buffer, size );
    118130        this->size += size;
     131    }
     132    void Put( double dbl )
     133    {
     134        Put( (const char *)(&dbl), sizeof(double) );
     135    }
     136    void Put( float flt )
     137    {
     138        Put( (const char *)(&flt), sizeof(float) );
    119139    }
    120140    void Put( _int64 i64data )
  • trunk/abdev/BasicCompiler_Common/include/Meta.h

    r280 r288  
    2626
    2727    // グローバル変数
    28     Variables globalVars;
     28    GlobalVars globalVars;
    2929
    3030    // グローバル定数
     
    113113    }
    114114
    115     const Variables &GetGlobalVars() const
     115    const GlobalVars &GetGlobalVars() const
    116116    {
    117117        return globalVars;
    118118    }
    119     Variables &GetGlobalVars()
     119    GlobalVars &GetGlobalVars()
    120120    {
    121121        return globalVars;
  • trunk/abdev/BasicCompiler_Common/include/Variable.h

    r287 r288  
    55#include <Symbol.h>
    66#include <Type.h>
     7#include <Binary.h>
    78
    89class Variable : public Symbol
     
    223224class Variables : public vector<Variable *>
    224225{
     226protected:
    225227    int allSize;
    226     int allInitSize;
    227 public:
    228     Variables()
    229         : allSize( 0 )
    230         , allInitSize( 0 )
    231     {
    232     }
    233     ~Variables(){
    234         Clear();
    235     }
    236 
    237     void Clear(){
    238         for( int i=0; i<(int)this->size(); i++ ){
    239             delete (*this)[i];
    240         }
    241 
    242         allSize = 0;
    243         allInitSize = 0;
    244         clear();
    245     }
    246     void PullOutAll()
    247     {
    248         clear();
    249     }
    250 
    251     bool DuplicateCheck( const Symbol &symbol ) const;
    252 
    253     const Variable *BackSearch( const Symbol &symbol ) const;
    254     const Variable *Find( const Symbol &symbol )const;
    255 
    256     void Add( Variable *pVar, bool isResetOffsetAddress = true );
    257 
    258     int GetAllSize() const
    259     {
    260         return allSize;
    261     }
    262     int GetAllInitSize() const
    263     {
    264         return allInitSize;
    265     }
    266 
    267228
    268229    // XMLシリアライズ用
     
    275236        ar & boost::serialization::make_nvp("vector_Variable", boost::serialization::base_object<vector<Variable *>>(*this));
    276237    }
     238
     239public:
     240    Variables()
     241        : allSize( 0 )
     242    {
     243    }
     244    ~Variables(){
     245        Clear();
     246    }
     247
     248    void Clear(){
     249        for( int i=0; i<(int)this->size(); i++ ){
     250            delete (*this)[i];
     251        }
     252
     253        allSize = 0;
     254        clear();
     255    }
     256    void PullOutAll()
     257    {
     258        clear();
     259    }
     260
     261    int GetAllSize() const
     262    {
     263        return allSize;
     264    }
     265
     266    bool DuplicateCheck( const Symbol &symbol ) const;
     267
     268    const Variable *BackSearch( const Symbol &symbol ) const;
     269    const Variable *Find( const Symbol &symbol )const;
    277270};
    278271
    279 class GlobalVar : public Variable
     272class GlobalVars : public Variables
    280273{
    281     BYTE *initBuffer;
    282 public:
    283     GlobalVar()
    284     {
    285         initBuffer = (BYTE *)malloc( 1 );
    286     }
    287     ~GlobalVar()
    288     {
    289         free( initBuffer );
    290     }
     274public:
     275    Binary initAreaBuffer;
     276
     277    // XMLシリアライズ用
     278private:
     279    friend class boost::serialization::access;
     280    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     281    {
     282        trace_for_serialize( "serializing - GlobalVars" );
     283
     284        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Variables );
     285        ar & BOOST_SERIALIZATION_NVP( initAreaBuffer );
     286    }
     287public:
     288    GlobalVars()
     289    {
     290    }
     291    ~GlobalVars()
     292    {
     293    }
     294
     295    void Add( Variable *pVar, bool isResetOffsetAddress = true );
    291296};
  • trunk/abdev/BasicCompiler_Common/include/option.h

    r276 r288  
    3737
    3838    // XMLシリアライズに関するログを生成する
    39     //#define USE_TRACE_FOR_SERIALIZE
     39    #define USE_TRACE_FOR_SERIALIZE
    4040
    4141    // ソースコードステップに関するログを生成する
  • trunk/abdev/BasicCompiler_Common/src/BoostSerializationSupport.cpp

    r279 r288  
    1 #include "stdafx.h"
     1#include <string>
     2#include <vector>
     3#include <fstream>
     4
     5#include <windows.h>
     6#include <stdio.h>
     7#include <string.h>
     8#include <math.h>
     9#include <commctrl.h>
     10#include <time.h>
     11#include <limits.h>
     12#include <shlobj.h>
     13
     14//boost libraries
     15#include <boost/foreach.hpp>
     16
     17#include "../common.h"
    218
    319#include <boost/archive/xml_oarchive.hpp>
     
    1632
    1733#include <BoostSerializationSupport.h>
    18 
    19 #include <windows.h>
     34#include <Compiler.h>
    2035
    2136using namespace Jenga::Common;
  • trunk/abdev/BasicCompiler_Common/src/LexicalScope.cpp

    r276 r288  
    7171    CallDestructorsOfScopeEnd();
    7272
    73     Variables &vars = UserProc::IsGlobalAreaCompiling() ?
    74         compiler.GetObjectModule().meta.GetGlobalVars() :
    75         UserProc::CompilingUserProc().GetLocalVars();
     73    Variables *pVars = UserProc::IsGlobalAreaCompiling() ?
     74        &compiler.GetObjectModule().meta.GetGlobalVars() :
     75        &UserProc::CompilingUserProc().GetLocalVars();
    7676
    7777    //使用済みローカル変数の生存チェックを外す
    78     BOOST_FOREACH( Variable *pVar, vars ){
     78    BOOST_FOREACH( Variable *pVar, (*pVars) ){
    7979        if(pVar->bLiving&&pVar->GetScopeLevel()==level){
    8080            pVar->bLiving=0;
     
    9696void LexicalScopes::CallDestructorsOfScopeEnd(){
    9797
    98     Variables &vars = UserProc::IsGlobalAreaCompiling() ?
    99         compiler.GetObjectModule().meta.GetGlobalVars() :
    100         UserProc::CompilingUserProc().GetLocalVars();
     98    Variables *pVariabls = UserProc::IsGlobalAreaCompiling() ?
     99        &compiler.GetObjectModule().meta.GetGlobalVars() :
     100        &UserProc::CompilingUserProc().GetLocalVars();
    101101
    102102
    103103    int i3;
    104104    int indexSystemGC=-1;
    105     for( i3 = (int)vars.size() - 1; i3 >= 0; i3-- ){        //確保したのと逆順序で解放するため、バックサーチにする
     105    for( i3 = (int)pVariabls->size() - 1; i3 >= 0; i3-- ){      //確保したのと逆順序で解放するため、バックサーチにする
    106106
    107         Variable *pVar = vars[i3];
     107        Variable *pVar = (*pVariabls)[i3];
    108108
    109109        if( UserProc::IsGlobalAreaCompiling() && GetNowLevel() == 0 ){
     
    159159    if(indexSystemGC!=-1){
    160160        //_System_GCオブジェクトのデストラクタの呼び出し処理
    161         const CMethod *method = vars[indexSystemGC]->GetType().GetClass().GetDestructorMethod();
     161        const CMethod *method = (*pVariabls)[indexSystemGC]->GetType().GetClass().GetDestructorMethod();
    162162        if( method ){
    163             Opcode_CallProc("",&method->GetUserProc(),0,vars[indexSystemGC]->GetName().c_str(),DEF_OBJECT);
     163            Opcode_CallProc("",&method->GetUserProc(),0,(*pVariabls)[indexSystemGC]->GetName().c_str(),DEF_OBJECT);
    164164        }
    165165    }
  • trunk/abdev/BasicCompiler_Common/src/Linker.cpp

    r287 r288  
    7878void Linker::ResolveGlobalVarSchedules( long rwSectionBaseOffset )
    7979{
    80     int allInitVarSize = compiler.GetObjectModule().meta.GetGlobalVars().GetAllInitSize();
     80    int allInitVarSize = compiler.GetObjectModule().meta.GetGlobalVars().initAreaBuffer.GetSize();
    8181
    8282    BOOST_FOREACH( const Schedule &schedule, nativeCode.GetSchedules() )
  • trunk/abdev/BasicCompiler_Common/src/Meta.cpp

    r287 r288  
    8282
    8383    // グローバル変数
     84    long initAreaBaseOffset = this->globalVars.initAreaBuffer.GetSize();
    8485    BOOST_FOREACH( Variable *pVar, meta.globalVars )
    8586    {
     
    9495        {
    9596            // 初期バッファがあるときはデータテーブルオフセットを適用する
    96             pVar->SetOffsetAddress( pVar->GetOffsetAddress() + dataSectionBaseOffset );
     97            pVar->SetOffsetAddress( pVar->GetOffsetAddress() + initAreaBaseOffset );
    9798
    9899            isResetOffsetAddress = false;
     
    103104    }
    104105    meta.globalVars.PullOutAll();
     106    this->globalVars.initAreaBuffer.Put(
     107        meta.globalVars.initAreaBuffer.GetBuffer(),
     108        meta.globalVars.initAreaBuffer.GetSize()
     109    );
    105110
    106111    // グローバル定数
  • trunk/abdev/BasicCompiler_Common/src/Variable.cpp

    r287 r288  
    3333    //レキシカルスコープを考慮して重複判定
    3434    for( int i=(int)this->size()-1; i>=0 ; i-- ){
    35         Variable &var = *(*this)[i];
    36         if( var.bLiving                                         //現在のスコープで有効なもの
    37             && var.GetScopeLevel() == compiler.codeGenerator.lexicalScopes.GetNowLevel()    //現在のスコープと同一レベル
     35        const Variable *pVar = (*this)[i];
     36        if( pVar->bLiving                                           //現在のスコープで有効なもの
     37            && pVar->GetScopeLevel() == compiler.codeGenerator.lexicalScopes.GetNowLevel()  //現在のスコープと同一レベル
    3838            )
    3939        {
    40             if( var.IsEqualSymbol( symbol ) ){
     40            if( pVar->IsEqualSymbol( symbol ) ){
    4141                return true;
    4242            }
     
    5050    //レキシカルスコープを考慮してバックサーチ
    5151    for( int i=(int)this->size()-1; i>=0 ; i-- ){
    52         Variable &var = *(*this)[i];
    53         if( var.bLiving                                         //現在のスコープで有効なもの
    54             && var.GetScopeLevel() <= compiler.codeGenerator.lexicalScopes.GetNowLevel()    //現在のスコープレベルを超さないもの(Returnによる解放処理中を考慮)
     52        const Variable *pVar = (*this)[i];
     53        if( pVar->bLiving                                           //現在のスコープで有効なもの
     54            && pVar->GetScopeLevel() <= compiler.codeGenerator.lexicalScopes.GetNowLevel()  //現在のスコープレベルを超さないもの(Returnによる解放処理中を考慮)
    5555            ){
    56                 if( var.IsEqualSymbol( symbol ) ){
    57                     return &var;
     56                if( pVar->IsEqualSymbol( symbol ) ){
     57                    return pVar;
    5858                }
    5959        }
     
    7474}
    7575
    76 void Variables::Add( Variable *pVar, bool isResetOffsetAddress )
     76void GlobalVars::Add( Variable *pVar, bool isResetOffsetAddress )
    7777{
    7878    int alignment = 0;
     
    8484        //初期バッファがあるとき
    8585
    86         if( alignment ){
    87             if( allInitSize % alignment ){
    88                 allInitSize += alignment - (allInitSize % alignment);
    89             }
    90         }
    91 
    9286        if( isResetOffsetAddress )
    9387        {
    94             pVar->SetOffsetAddress( allInitSize );
     88            if( alignment ){
     89                if( initAreaBuffer.GetSize() % alignment ){
     90                    initAreaBuffer.Resize( initAreaBuffer.GetSize() + ( alignment - (initAreaBuffer.GetSize() % alignment) ) );
     91                }
     92            }
     93
     94            pVar->SetOffsetAddress( initAreaBuffer.GetSize() );
     95
     96            initAreaBuffer.Resize( initAreaBuffer.GetSize() + pVar->GetMemorySize() );
    9597        }
    96         allInitSize += pVar->GetMemorySize();
    9798    }
    9899    else{
     
    105106        }
    106107
    107         if( !isResetOffsetAddress )
    108         {
    109             Jenga::Throw( "[Variables::Add] 初期バッファがない変数に対してisResetOffsetAddressをfalseにできない" );
    110         }
    111 
    112108        pVar->SetOffsetAddress( allSize | 0x80000000 );
    113109        allSize += pVar->GetMemorySize();
  • trunk/abdev/abcompiler32.sln

    r161 r288  
    55EndProject
    66Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BasicCompiler32", "BasicCompiler32\BasicCompiler.vcproj", "{11F0E9AB-EAEC-4616-A9DD-838073342CBB}"
     7    ProjectSection(ProjectDependencies) = postProject
     8        {996D6B55-6503-4427-84AB-351784EAFB71} = {996D6B55-6503-4427-84AB-351784EAFB71}
     9        {F01805B6-65B4-4708-88F4-A5E07DEA9FBD} = {F01805B6-65B4-4708-88F4-A5E07DEA9FBD}
     10    EndProjectSection
    711EndProject
    812Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smoothie", "..\jenga\projects\smoothie\smoothie.vcproj", "{996D6B55-6503-4427-84AB-351784EAFB71}"
Note: See TracChangeset for help on using the changeset viewer.