Changeset 256 in dev for trunk/abdev/BasicCompiler_Common
- Timestamp:
- Aug 1, 2007, 11:19:01 PM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler_Common
- Files:
-
- 1 added
- 26 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/BreakPoint.cpp
r206 r256 42 42 } 43 43 44 void CFileBreakPoint::update(char * OpBuffer){44 void CFileBreakPoint::update(char *nativeCodeBuffer){ 45 45 extern INCLUDEFILEINFO IncludeFileInfo; 46 46 … … 85 85 } 86 86 87 OpBuffer[pLineInfo[i3].TopObp]=(char)0xCC;87 nativeCodeBuffer[pLineInfo[i3].TopObp]=(char)0xCC; 88 88 89 89 nCount++; … … 177 177 } 178 178 179 char *CDBBreakPoint::update(char * OpBuffer,int SizeOf_CodeSection){179 char *CDBBreakPoint::update(char *nativeCodeBuffer,int SizeOf_CodeSection){ 180 180 char *buffer; 181 181 buffer=(char *)HeapAlloc(hHeap,0,SizeOf_CodeSection); 182 memcpy(buffer, OpBuffer,SizeOf_CodeSection);182 memcpy(buffer,nativeCodeBuffer,SizeOf_CodeSection); 183 183 184 184 int i; -
trunk/abdev/BasicCompiler_Common/BreakPoint.h
r4 r256 14 14 void remove(int iLineNum); 15 15 16 void update(char * OpBuffer);16 void update(char *nativeCodeBuffer); 17 17 }; 18 18 … … 28 28 void remove(char *lpszFileName,int iLineNum); 29 29 30 char *update(char * OpBuffer,int SizeOf_CodeSection);30 char *update(char *nativeCodeBuffer,int SizeOf_CodeSection); 31 31 }; 32 32 -
trunk/abdev/BasicCompiler_Common/Debug.cpp
r233 r256 230 230 } 231 231 UserProc *GetSubFromObp(ULONG_PTR pos){ 232 compiler. GetMeta().GetUserProcs().Iterator_Reset();233 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )232 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 233 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 234 234 { 235 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();235 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 236 236 237 237 if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pos && -
trunk/abdev/BasicCompiler_Common/DebugMiddleFile.cpp
r232 r256 37 37 (*p)+=lstrlen(buffer+(*p))+1; 38 38 39 type.SetClassPtr( compiler. GetMeta().GetClasses().Find(szClassName) );39 type.SetClassPtr( compiler.objectModule.meta.GetClasses().Find(szClassName) ); 40 40 } 41 41 else{ … … 121 121 122 122 //イテレータをリセット 123 compiler. GetMeta().GetClasses().Iterator_Reset();123 compiler.objectModule.meta.GetClasses().Iterator_Reset(); 124 124 125 125 //個数 126 *(long *)(buffer+i2)=compiler. GetMeta().GetClasses().Iterator_GetMaxCount();127 i2+=sizeof(long); 128 129 while(compiler. GetMeta().GetClasses().Iterator_HasNext()){126 *(long *)(buffer+i2)=compiler.objectModule.meta.GetClasses().Iterator_GetMaxCount(); 127 i2+=sizeof(long); 128 129 while(compiler.objectModule.meta.GetClasses().Iterator_HasNext()){ 130 130 CClass *pobj_c; 131 pobj_c=compiler. GetMeta().GetClasses().Iterator_GetNext();131 pobj_c=compiler.objectModule.meta.GetClasses().Iterator_GetNext(); 132 132 133 133 //クラス名 … … 141 141 // TypeDef情報 142 142 ////////////////// 143 *(long *)(buffer+i2)=(int)compiler. GetMeta().GetTypeDefs().size();144 i2+=sizeof(long); 145 for(i3=0;i3<(int)compiler. GetMeta().GetTypeDefs().size();i3++){146 lstrcpy(buffer+i2,compiler. GetMeta().GetTypeDefs()[i3].GetName().c_str() );147 i2+=lstrlen(buffer+i2)+1; 148 149 lstrcpy(buffer+i2,compiler. GetMeta().GetTypeDefs()[i3].GetBaseName().c_str() );143 *(long *)(buffer+i2)=(int)compiler.objectModule.meta.GetTypeDefs().size(); 144 i2+=sizeof(long); 145 for(i3=0;i3<(int)compiler.objectModule.meta.GetTypeDefs().size();i3++){ 146 lstrcpy(buffer+i2,compiler.objectModule.meta.GetTypeDefs()[i3].GetName().c_str() ); 147 i2+=lstrlen(buffer+i2)+1; 148 149 lstrcpy(buffer+i2,compiler.objectModule.meta.GetTypeDefs()[i3].GetBaseName().c_str() ); 150 150 i2+=lstrlen(buffer+i2)+1; 151 151 … … 159 159 160 160 //グローバル変数情報 161 *(long *)(buffer+i2)=(int)compiler. GetMeta().GetGlobalVars().size();162 i2+=sizeof(long); 163 BOOST_FOREACH( Variable *pVar, compiler. GetMeta().GetGlobalVars() ){161 *(long *)(buffer+i2)=(int)compiler.objectModule.meta.GetGlobalVars().size(); 162 i2+=sizeof(long); 163 BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){ 164 164 //変数名 165 165 lstrcpy(buffer+i2,pVar->GetName().c_str()); … … 212 212 213 213 //プロシージャ情報 214 *(long *)(buffer+i2) = compiler. GetMeta().GetUserProcs().Iterator_GetMaxCount();215 i2+=sizeof(long); 216 compiler. GetMeta().GetUserProcs().Iterator_Reset();217 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )214 *(long *)(buffer+i2) = compiler.objectModule.meta.GetUserProcs().Iterator_GetMaxCount(); 215 i2+=sizeof(long); 216 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 217 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 218 218 { 219 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();219 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 220 220 221 221 if(pUserProc->GetParentClassPtr()){ … … 309 309 310 310 //イテレータをリセット 311 compiler. GetMeta().GetClasses().Iterator_Reset();312 313 while(compiler. GetMeta().GetClasses().Iterator_HasNext()){311 compiler.objectModule.meta.GetClasses().Iterator_Reset(); 312 313 while(compiler.objectModule.meta.GetClasses().Iterator_HasNext()){ 314 314 CClass *pobj_c; 315 pobj_c=compiler. GetMeta().GetClasses().Iterator_GetNext();315 pobj_c=compiler.objectModule.meta.GetClasses().Iterator_GetNext(); 316 316 317 317 … … 510 510 } 511 511 512 compiler. GetMeta().SetClasses( this->pobj_DBClass );512 compiler.objectModule.meta.SetClasses( this->pobj_DBClass ); 513 513 514 514 … … 518 518 519 519 //初期化 520 compiler. GetMeta().GetTypeDefs().clear();520 compiler.objectModule.meta.GetTypeDefs().clear(); 521 521 522 522 //個数を取得 … … 528 528 529 529 // 名前空間に未対応 530 compiler. GetMeta().GetTypeDefs().push_back( TypeDef( NamespaceScopes(), temp5, buffer+i2, -1 ) );530 compiler.objectModule.meta.GetTypeDefs().push_back( TypeDef( NamespaceScopes(), temp5, buffer+i2, -1 ) ); 531 531 532 532 i2+=lstrlen(buffer+i2)+1; … … 535 535 //定数を取得 536 536 GetConstInfo(); 537 this->globalConsts = compiler. GetMeta().GetGlobalConsts();538 this->globalConstMacros = compiler. GetMeta().GetGlobalConstMacros();537 this->globalConsts = compiler.objectModule.meta.GetGlobalConsts(); 538 this->globalConstMacros = compiler.objectModule.meta.GetGlobalConstMacros(); 539 539 540 540 //グローバル変数情報 541 compiler. GetMeta().GetGlobalVars().clear();541 compiler.objectModule.meta.GetGlobalVars().clear(); 542 542 int maxGlobalVars=*(long *)(buffer+i2); 543 543 i2+=sizeof(long); … … 586 586 587 587 //変数を追加 588 compiler. GetMeta().GetGlobalVars().push_back( pVar );588 compiler.objectModule.meta.GetGlobalVars().push_back( pVar ); 589 589 } 590 590 … … 604 604 const CClass *pClass = NULL; 605 605 if(szParentClassName[0]){ 606 pClass=compiler. GetMeta().GetClasses().Find(szParentClassName);606 pClass=compiler.objectModule.meta.GetClasses().Find(szParentClassName); 607 607 } 608 608 … … 698 698 i2+=lstrlen(buffer+i2)+1; 699 699 700 pobj_c = const_cast<CClass *>( compiler. GetMeta().GetClasses().Find(szClassName) );700 pobj_c = const_cast<CClass *>( compiler.objectModule.meta.GetClasses().Find(szClassName) ); 701 701 702 702 //仮想関数の数 … … 755 755 const CClass *pobj_InheritsClass = NULL; 756 756 if(szInherits[0]){ 757 pobj_InheritsClass=compiler. GetMeta().GetClasses().Find(szInherits);757 pobj_InheritsClass=compiler.objectModule.meta.GetClasses().Find(szInherits); 758 758 } 759 759 … … 765 765 if(pobj_temp_c==0) pobj_temp_c=pobj_c; 766 766 767 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().GetHashArrayElement( temp2 );767 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().GetHashArrayElement( temp2 ); 768 768 while(pUserProc){ 769 769 if( pUserProc->GetName() == temp2 &&pUserProc->GetParentClassPtr()==pobj_temp_c) … … 821 821 822 822 823 compiler. GetMeta().GetUserProcs() = userProcs;823 compiler.objectModule.meta.GetUserProcs() = userProcs; 824 824 pSub_DebugSys_EndProc=GetSubHash("_DebugSys_EndProc"); 825 825 … … 962 962 963 963 // クラス情報 964 compiler. GetMeta().SetClasses( this->pobj_DBClass );964 compiler.objectModule.meta.SetClasses( this->pobj_DBClass ); 965 965 966 966 //定数を取得 967 compiler. GetMeta().GetGlobalConsts() = this->globalConsts;968 compiler. GetMeta().GetGlobalConstMacros() = this->globalConstMacros;967 compiler.objectModule.meta.GetGlobalConsts() = this->globalConsts; 968 compiler.objectModule.meta.GetGlobalConstMacros() = this->globalConstMacros; 969 969 970 970 //グローバル実行領域のサイズ … … 973 973 974 974 //プロシージャ 975 compiler. GetMeta().GetUserProcs() = userProcs;975 compiler.objectModule.meta.GetUserProcs() = userProcs; 976 976 977 977 extern const UserProc *pSub_DebugSys_EndProc; -
trunk/abdev/BasicCompiler_Common/Diagnose.cpp
r206 r256 40 40 int codeSizeOfGlobalProc = 0; 41 41 int codeSizeOfClassMethod = 0; 42 compiler. GetMeta().GetUserProcs().Iterator_Reset();43 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )42 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 43 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 44 44 { 45 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();45 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 46 46 if( pUserProc->IsCompiled() ){ 47 47 if( pUserProc->HasParentClass() ){ … … 68 68 // イテレータをリセット 69 69 extern Classes *pobj_DBClass; 70 compiler. GetMeta().GetClasses().Iterator_Reset();70 compiler.objectModule.meta.GetClasses().Iterator_Reset(); 71 71 72 while( compiler. GetMeta().GetClasses().Iterator_HasNext() ){72 while( compiler.objectModule.meta.GetClasses().Iterator_HasNext() ){ 73 73 int codeSizeOfClass = 0; 74 74 75 CClass &objClass = *compiler. GetMeta().GetClasses().Iterator_GetNext();75 CClass &objClass = *compiler.objectModule.meta.GetClasses().Iterator_GetNext(); 76 76 77 77 if( !objClass.IsEnum() ){ … … 108 108 // イテレータをリセット 109 109 extern Classes *pobj_DBClass; 110 compiler. GetMeta().GetClasses().Iterator_Reset();110 compiler.objectModule.meta.GetClasses().Iterator_Reset(); 111 111 112 while( compiler. GetMeta().GetClasses().Iterator_HasNext() ){112 while( compiler.objectModule.meta.GetClasses().Iterator_HasNext() ){ 113 113 int codeSizeOfClass = 0; 114 114 115 CClass &objClass = *compiler. GetMeta().GetClasses().Iterator_GetNext();115 CClass &objClass = *compiler.objectModule.meta.GetClasses().Iterator_GetNext(); 116 116 117 117 // 動的メソッド -
trunk/abdev/BasicCompiler_Common/Intermediate_Step2.cpp
r206 r256 79 79 80 80 //定数を追加 81 compiler. GetMeta().GetGlobalConsts().Add( namespaceScopes, temporary, NextValue);81 compiler.objectModule.meta.GetGlobalConsts().Add( namespaceScopes, temporary, NextValue); 82 82 } 83 83 } … … 95 95 96 96 //定数に関する情報を初期化 97 compiler. GetMeta().GetGlobalConsts().Clear();98 compiler. GetMeta().GetGlobalConstMacros().Clear();97 compiler.objectModule.meta.GetGlobalConsts().Clear(); 98 compiler.objectModule.meta.GetGlobalConstMacros().Clear(); 99 99 100 100 extern char *basbuf; … … 172 172 173 173 // イテレータを初期化 174 compiler. GetMeta().GetGlobalConsts().Iterator_Init();175 compiler. GetMeta().GetGlobalConstMacros().Iterator_Init();174 compiler.objectModule.meta.GetGlobalConsts().Iterator_Init(); 175 compiler.objectModule.meta.GetGlobalConstMacros().Iterator_Init(); 176 176 177 177 return true; -
trunk/abdev/BasicCompiler_Common/MakeExe.cpp
r209 r256 137 137 extern int AllGlobalVarSize; 138 138 extern int AllInitGlobalVarSize; 139 compiler. GetMeta().GetGlobalVars().clear();139 compiler.objectModule.meta.GetGlobalVars().clear(); 140 140 AllGlobalVarSize=0; 141 141 AllInitGlobalVarSize=0; -
trunk/abdev/BasicCompiler_Common/NumOpe_GetType.cpp
r254 r256 330 330 Type leftType; 331 331 if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){ 332 if( isClassName == false && compiler. GetMeta().GetBlittableTypes().IsExist( leftType ) ){332 if( isClassName == false && compiler.objectModule.meta.GetBlittableTypes().IsExist( leftType ) ){ 333 333 // 左側のオブジェクト部分がBlittable型のとき 334 334 … … 336 336 lstrcpy( temporary, termLeft ); 337 337 sprintf( termLeft, "%s(%s)", 338 compiler. GetMeta().GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),338 compiler.objectModule.meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(), 339 339 temporary ); 340 340 … … 398 398 399 399 if( pIsClassName ){ 400 if( compiler. GetMeta().GetClasses().Find( termFull ) ){400 if( compiler.objectModule.meta.GetClasses().Find( termFull ) ){ 401 401 *pIsClassName = true; 402 402 return true; … … 457 457 else 458 458 { 459 ConstMacro *pConstMacro = compiler. GetMeta().GetGlobalConstMacros().Find( procName );459 ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( procName ); 460 460 if( pConstMacro ) 461 461 { … … 689 689 //要求タイプがオブジェクト、または未定のとき 690 690 type_stack[sp]=DEF_OBJECT; 691 index_stack[sp]=(LONG_PTR)compiler. GetMeta().GetClasses().GetStringClassPtr();691 index_stack[sp]=(LONG_PTR)compiler.objectModule.meta.GetClasses().GetStringClassPtr(); 692 692 *pIsLiteralCalculation = false; 693 693 … … 734 734 } 735 735 else{ 736 index_stack[sp] = (LONG_PTR)compiler. GetMeta().GetClasses().GetObjectClassPtr();736 index_stack[sp] = (LONG_PTR)compiler.objectModule.meta.GetClasses().GetObjectClassPtr(); 737 737 } 738 738 *pIsLiteralCalculation = false; … … 746 746 ////////////// 747 747 748 i3 = compiler. GetMeta().GetGlobalConsts().GetBasicType(term);748 i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(term); 749 749 if(i3){ 750 if( compiler. GetMeta().GetGlobalConsts().IsStringPtr( term ) ){750 if( compiler.objectModule.meta.GetGlobalConsts().IsStringPtr( term ) ){ 751 751 //リテラル文字列 752 752 goto StrLiteral; -
trunk/abdev/BasicCompiler_Common/Subroutine.cpp
r255 r256 168 168 GetVarType(fullCallName,type,false); 169 169 170 ProcPointer *pProcPtr = compiler. GetMeta().GetProcPointers()[type.GetIndex()];170 ProcPointer *pProcPtr = compiler.objectModule.meta.GetProcPointers()[type.GetIndex()]; 171 171 resultType = pProcPtr->ReturnType(); 172 172 … … 451 451 452 452 bool IsNeedProcCompile(){ 453 compiler. GetMeta().GetUserProcs().Iterator_Reset();454 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )453 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 454 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 455 455 { 456 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();456 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 457 457 if( pUserProc->IsUsing() && pUserProc->IsCompiled() == false ){ 458 458 return true; -
trunk/abdev/BasicCompiler_Common/VarList.cpp
r220 r256 275 275 extern int MemPos_RWSection; 276 276 277 BOOST_FOREACH( Variable *pVar, compiler. GetMeta().GetGlobalVars() ){277 BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){ 278 278 279 279 //スコープ外の場合は無視 … … 358 358 359 359 UserProc *pUserProc = NULL; 360 compiler. GetMeta().GetUserProcs().Iterator_Reset();361 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )360 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 361 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 362 362 { 363 pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();363 pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 364 364 if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pobj_dti->lplpObp[i2] && 365 365 pobj_dti->lplpObp[i2] < rva_to_real(pUserProc->GetEndOpAddress())){ … … 605 605 606 606 UserProc *pUserProc = NULL; 607 compiler. GetMeta().GetUserProcs().Iterator_Reset();608 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )607 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 608 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 609 609 { 610 pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();610 pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 611 611 612 612 if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pobj_dti->lplpObp[i2] && … … 718 718 719 719 UserProc *pUserProc = NULL; 720 compiler. GetMeta().GetUserProcs().Iterator_Reset();721 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )720 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 721 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 722 722 { 723 pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();723 pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 724 724 725 725 if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pobj_dti->lplpObp[i2] && -
trunk/abdev/BasicCompiler_Common/VariableOpe.cpp
r248 r256 220 220 if(lpIndex==-1) lstrcpy(name,"VoidPtr"); 221 221 else{ 222 if( compiler. GetMeta().GetProcPointers()[lpIndex]->ReturnType().IsNull() )222 if( compiler.objectModule.meta.GetProcPointers()[lpIndex]->ReturnType().IsNull() ) 223 223 lstrcpy(name,"*Sub"); 224 224 else lstrcpy(name,"*Function"); … … 235 235 236 236 Type GetStringTypeInfo(){ 237 Type type( DEF_OBJECT, *compiler. GetMeta().GetClasses().GetStringClassPtr() );237 Type type( DEF_OBJECT, *compiler.objectModule.meta.GetClasses().GetStringClassPtr() ); 238 238 return type; 239 239 } … … 575 575 // 名前空間を分離 576 576 char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE]; 577 compiler. GetMeta().GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );577 compiler.objectModule.meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName ); 578 578 579 579 // 先頭オブジェクトまたはクラス名と入れ子メンバに分割 … … 647 647 GetNowStaticVarFullName(VarName,temporary); 648 648 649 pVar = compiler. GetMeta().GetGlobalVars().Find( Symbol( temporary ) );649 pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temporary ) ); 650 650 if( pVar ){ 651 651 goto ok; … … 667 667 } 668 668 669 int typeDefIndex = compiler. GetMeta().GetTypeDefs().GetIndex( VarName );669 int typeDefIndex = compiler.objectModule.meta.GetTypeDefs().GetIndex( VarName ); 670 670 if( typeDefIndex != -1 ){ 671 671 // TypeDef後の型名だったとき 672 lstrcpy( VarName, compiler. GetMeta().GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );672 lstrcpy( VarName, compiler.objectModule.meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() ); 673 673 } 674 674 … … 676 676 sprintf(temp2,"%s.%s",VarName,temporary); 677 677 678 pVar = compiler. GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );678 pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) ); 679 679 if( pVar ){ 680 680 lstrcpy(member,tempMember); … … 689 689 sprintf(temp2,"%s.%s",compiler.pCompilingClass->GetName().c_str(),VarName); 690 690 691 pVar = compiler. GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );691 pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) ); 692 692 if( pVar ){ 693 693 goto ok; … … 700 700 //////////////////// 701 701 702 pVar = compiler. GetMeta().GetGlobalVars().BackSearch( Symbol( VarName ) );702 pVar = compiler.objectModule.meta.GetGlobalVars().BackSearch( Symbol( VarName ) ); 703 703 if( pVar ){ 704 704 goto ok; … … 973 973 extern int AllGlobalVarSize; 974 974 975 if( compiler. GetMeta().GetGlobalVars().DuplicateCheck( Symbol( name ) ) ){975 if( compiler.objectModule.meta.GetGlobalVars().DuplicateCheck( Symbol( name ) ) ){ 976 976 //2重定義のエラー 977 977 SetError(15,name,cp); … … 997 997 998 998 // 変数を追加 999 compiler. GetMeta().GetGlobalVars().push_back( pVar );999 compiler.objectModule.meta.GetGlobalVars().push_back( pVar ); 1000 1000 1001 1001 //アラインメントを考慮 … … 1105 1105 1106 1106 //定数と2重定義されていないる場合は抜け出す 1107 if(compiler. GetMeta().GetGlobalConsts().GetBasicType(VarName)){1107 if(compiler.objectModule.meta.GetGlobalConsts().GetBasicType(VarName)){ 1108 1108 return; 1109 1109 } 1110 1110 1111 1111 //定数マクロとして定義されている場合は抜け出す 1112 if( compiler. GetMeta().GetGlobalConstMacros().IsExist( VarName ) )1112 if( compiler.objectModule.meta.GetGlobalConstMacros().IsExist( VarName ) ) 1113 1113 { 1114 1114 return; … … 1126 1126 1127 1127 //定数と2重定義されていないかを調べる 1128 if(compiler. GetMeta().GetGlobalConsts().GetBasicType(VarName)){1128 if(compiler.objectModule.meta.GetGlobalConsts().GetBasicType(VarName)){ 1129 1129 SetError(15,VarName,cp); 1130 1130 return; … … 1132 1132 1133 1133 //定数マクロとして定義されている場合 1134 if( compiler. GetMeta().GetGlobalConstMacros().IsExist( VarName ) ){1134 if( compiler.objectModule.meta.GetGlobalConstMacros().IsExist( VarName ) ){ 1135 1135 SetError(15,VarName,cp); 1136 1136 return; -
trunk/abdev/BasicCompiler_Common/WatchList.cpp
r206 r256 440 440 /////////////////// 441 441 442 const Variable *pVar = compiler. GetMeta().GetGlobalVars().Find( VarName );442 const Variable *pVar = compiler.objectModule.meta.GetGlobalVars().Find( VarName ); 443 443 if( !pVar ){ 444 444 //一致しないとき -
trunk/abdev/BasicCompiler_Common/calculation.cpp
r254 r256 500 500 //定数関数 501 501 502 ConstMacro *pConstMacro = compiler. GetMeta().GetGlobalConstMacros().Find( temporary );502 ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( temporary ); 503 503 if( !pConstMacro ) 504 504 { … … 665 665 ///////// 666 666 StrPtr[pnum]=0; 667 type[pnum] = compiler. GetMeta().GetGlobalConsts().GetBasicType(Parms);667 type[pnum] = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(Parms); 668 668 if(type[pnum]){ 669 669 if(IsRealNumberType(type[pnum])){ 670 670 //実数型 671 nums[pnum] = compiler. GetMeta().GetGlobalConsts().GetDoubleData(Parms);671 nums[pnum] = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(Parms); 672 672 } 673 673 else if(IsWholeNumberType(type[pnum])){ 674 674 //整数 675 i64nums[pnum] = compiler. GetMeta().GetGlobalConsts().GetWholeData(Parms);675 i64nums[pnum] = compiler.objectModule.meta.GetGlobalConsts().GetWholeData(Parms); 676 676 } 677 677 /* else if(type[pnum]==DEF_STRING){ … … 1221 1221 1222 1222 //定数 1223 ConstMacro *pConstMacro = compiler. GetMeta().GetGlobalConstMacros().Find( temporary );1223 ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( temporary ); 1224 1224 if(pConstMacro){ 1225 1225 //マクロ関数の場合 … … 1231 1231 1232 1232 //定数 1233 i3 = compiler. GetMeta().GetGlobalConsts().GetBasicType(Command+i2);1233 i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(Command+i2); 1234 1234 if(i3==DEF_STRING) return 1; //文字列 1235 1235 if(i3) return 0; //数値 -
trunk/abdev/BasicCompiler_Common/hash.cpp
r209 r256 33 33 34 34 // ハッシュ値を取得 35 DllProc *pDllProc = compiler. GetMeta().GetDllProcs().GetHashArrayElement( simpleName );35 DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().GetHashArrayElement( simpleName ); 36 36 while(pDllProc){ 37 37 if( pDllProc->IsEqualSymbol( fullName ) ){ … … 74 74 } 75 75 else{ 76 pobj_c=compiler. GetMeta().GetClasses().Find(ObjName);76 pobj_c=compiler.objectModule.meta.GetClasses().Find(ObjName); 77 77 if( pobj_c ){ 78 78 isStatic = true; … … 107 107 108 108 // グローバル関数を検索 109 compiler. GetMeta().GetUserProcs().EnumGlobalProcs( NestMember, name, subs );109 compiler.objectModule.meta.GetUserProcs().EnumGlobalProcs( NestMember, name, subs ); 110 110 } 111 111 … … 151 151 152 152 const UserProc *GetClassMethod( const char *className, const char *methodName ){ 153 const CClass *pClass = compiler. GetMeta().GetClasses().Find( className );153 const CClass *pClass = compiler.objectModule.meta.GetClasses().Find( className ); 154 154 if( pClass ){ 155 155 vector<const UserProc *> userProcs; -
trunk/abdev/BasicCompiler_Common/include/BoostSerializationSupport.h
r215 r256 26 26 bool WriteXml( const string &xmlFilePath, bool isShowExceptionMessage = true ) const; 27 27 28 bool ReadBina ly( const string &filePath, bool isShowExceptionMessage = true );29 bool WriteBina ly( const string &filePath, bool isShowExceptionMessage = true ) const;28 bool ReadBinary( const string &filePath, bool isShowExceptionMessage = true ); 29 bool WriteBinary( const string &filePath, bool isShowExceptionMessage = true ) const; 30 30 31 31 bool ReadText( const string &filePath, bool isShowExceptionMessage = true ); -
trunk/abdev/BasicCompiler_Common/include/Compiler.h
r225 r256 3 3 #include <CodeGenerator.h> 4 4 #include <NamespaceSupporter.h> 5 #include <Meta Impl.h>5 #include <Meta.h> 6 6 #include <DataTable.h> 7 7 #include <CodeGenerator.h> 8 #include <Linker.h> 8 9 9 10 class Compiler … … 11 12 // 名前空間サポート 12 13 NamespaceSupporter namespaceSupporter; 13 14 // メタ情報15 MetaImpl metaImpl;16 17 // データテーブル18 DataTable dataTable;19 14 20 15 public: … … 25 20 } 26 21 27 MetaImpl &GetMeta() 28 { 29 return metaImpl; 30 } 31 32 DataTable &GetDataTable() 33 { 34 return dataTable; 35 } 36 37 // グローバル領域のネイティブコード 38 NativeCode globalNativeCode; 22 // オブジェクトモジュール 23 ObjectModule objectModule; 39 24 40 25 // コード生成機構 41 26 CodeGenerator codeGenerator; 27 28 // リンカ 29 Linker linker; 42 30 43 31 static bool StringToType( const std::string &typeName, Type &type ); -
trunk/abdev/BasicCompiler_Common/include/DataTable.h
r184 r256 1 1 #pragma once 2 3 #include <BoostSerializationSupport.h> 2 4 3 5 //DataTable.cpp 4 6 class DataTable{ 5 void *pdata;7 char *buffer; 6 8 int size; 7 9 10 // XMLシリアライズ用 11 private: 12 friend class boost::serialization::access; 13 BOOST_SERIALIZATION_SPLIT_MEMBER(); 14 template<class Archive> void load(Archive& ar, const unsigned int version) 15 { 16 std::string _buffer; 17 ar & BOOST_SERIALIZATION_NVP( _buffer ); 18 ar & BOOST_SERIALIZATION_NVP( size ); 19 20 // 読み込み後の処理 21 Realloc( size ); 22 for( int i=0; i<size; i++ ) 23 { 24 if( _buffer[i*3+2] != ',' ) 25 { 26 //エラー 27 DebugBreak(); 28 } 29 ULONG_PTR l; 30 sscanf( _buffer.c_str() + i*3, "%02x,", &l ); 31 buffer[i] = (char)l; 32 } 33 } 34 template<class Archive> void save(Archive& ar, const unsigned int version) const 35 { 36 // 保存準備 37 char *tempCode = (char *)calloc( (size+1) * 3, 1 ); 38 for( int i=0; i<size; i++ ) 39 { 40 char temp[32]; 41 sprintf( temp, "%02x,", (unsigned char)buffer[i] ); 42 tempCode[i*3] = temp[0]; 43 tempCode[i*3+1] = temp[1]; 44 tempCode[i*3+2] = temp[2]; 45 } 46 47 std::string _buffer = tempCode; 48 free( tempCode ); 49 50 ar & BOOST_SERIALIZATION_NVP( _buffer ); 51 ar & BOOST_SERIALIZATION_NVP( size ); 52 } 53 8 54 public: 9 DataTable(); 10 ~DataTable(); 11 void Init(); 55 DataTable() 56 : buffer( (char *)malloc(100) ) 57 , size( 0 ) 58 { 59 lstrcpy( buffer, "initialized!!!" ); 60 } 61 DataTable( const DataTable &dataTable ) 62 : buffer( (char *)malloc(100) ) 63 , size( 0 ) 64 { 65 lstrcpy( buffer, "initialized!!!" ); 66 AddBinary( dataTable.GetPtr(), dataTable.GetSize() ); 67 } 68 ~DataTable() 69 { 70 free( buffer ); 71 } 72 void Clear() 73 { 74 size = 0; 75 } 12 76 13 int AddBinary( const void *pdata, int size ); 77 void operator =( const DataTable &dataTable ) 78 { 79 Clear(); 80 AddBinary( dataTable.GetPtr(), dataTable.GetSize() ); 81 } 82 83 void Realloc( int size ); 84 int AddBinary( const void *buffer, int size ); 14 85 int Add( _int64 i64data ); 15 86 int Add( int i32data ); -
trunk/abdev/BasicCompiler_Common/include/Meta.h
r255 r256 11 11 #include <Const.h> 12 12 13 class Meta Impl : public Jenga::Common::BoostSerializationSupport<MetaImpl>13 class Meta 14 14 { 15 15 // 名前空間 … … 45 45 // XMLシリアライズ用 46 46 private: 47 virtual const char *RootTagName() const48 {49 return "metaImpl";50 }51 47 friend class boost::serialization::access; 52 48 template<class Archive> void serialize(Archive& ar, const unsigned int version) 53 49 { 54 trace_for_serialize( "serializing - Meta Impl" );50 trace_for_serialize( "serializing - Meta" ); 55 51 56 52 ar & BOOST_SERIALIZATION_NVP( namespaceScopesCollection ); … … 69 65 70 66 public: 71 Meta Impl()67 Meta() 72 68 : classesImpl() 73 69 , pNowClassesForDebugger( &classesImpl ) -
trunk/abdev/BasicCompiler_Common/include/NativeCode.h
r253 r256 39 39 template<class Archive> void serialize(Archive& ar, const unsigned int version) 40 40 { 41 trace_for_serialize( "serializing - Schedule" ); 42 41 43 ar & BOOST_SERIALIZATION_NVP( type ); 42 44 ar & BOOST_SERIALIZATION_NVP( offset ); … … 94 96 template<class Archive> void load(Archive& ar, const unsigned int version) 95 97 { 98 trace_for_serialize( "serializing(load) - NativeCode" ); 99 96 100 std::string code; 97 101 ar & BOOST_SERIALIZATION_NVP( code ); … … 103 107 for( int i=0; i<size; i++ ) 104 108 { 105 char c;106 sscanf( code.c_str() + i*3, "%02x,", & c);107 codeBuffer[i] = c;109 ULONG_PTR l; 110 sscanf( code.c_str() + i*3, "%02x,", &l ); 111 codeBuffer[i] = (char)l; 108 112 } 109 113 } 110 114 template<class Archive> void save(Archive& ar, const unsigned int version) const 111 115 { 116 trace_for_serialize( "serializing(save) - NativeCode" ); 117 112 118 // 保存準備 113 char *tempCode = (char *) malloc( (size+1) * 3);119 char *tempCode = (char *)calloc( (size+1) * 3, 1 ); 114 120 for( int i=0; i<size; i++ ) 115 121 { 116 122 char temp[32]; 117 sprintf( temp, "%02x,", codeBuffer[i] );123 sprintf( temp, "%02x,", (unsigned char)codeBuffer[i] ); 118 124 tempCode[i*3] = temp[0]; 119 125 tempCode[i*3+1] = temp[1]; … … 130 136 131 137 132 void Realloc( int additionSize = 0)133 { 134 if( allocateSize < size + 8192 + additionSize)135 { 136 while( allocateSize < size + 8192 + additionSize)138 void Realloc( int newSize ) 139 { 140 if( allocateSize < newSize + 8192 ) 141 { 142 while( allocateSize < newSize + 8192 ) 137 143 { 138 144 allocateSize += 8192; … … 149 155 { 150 156 } 157 NativeCode( const NativeCode &nativeCode ) 158 : allocateSize( 8192 ) 159 , codeBuffer( (char *)malloc( allocateSize ) ) 160 , size( 0 ) 161 { 162 Put( nativeCode ); 163 } 151 164 NativeCode( const char *codeBuffer, int size ) 152 165 : allocateSize( 8192 ) … … 165 178 } 166 179 180 void operator =( const NativeCode &nativeCode ) 181 { 182 Clear(); 183 Put( nativeCode ); 184 } 185 167 186 int GetSize() const 168 187 { … … 203 222 void Put( const char *codeBuffer, int size ) 204 223 { 205 Realloc( size );224 Realloc( this->size + size ); 206 225 207 226 memcpy( this->codeBuffer + this->size, codeBuffer, size ); … … 268 287 void Put( char c ) 269 288 { 289 Realloc( size + 1 ); 270 290 codeBuffer[size++] = c; 271 Realloc();272 291 273 292 -
trunk/abdev/BasicCompiler_Common/include/SmoothieImpl.h
r206 r256 3 3 #include <jenga/include/smoothie/Smoothie.h> 4 4 5 #include <Meta Impl.h>5 #include <Meta.h> 6 6 7 7 class SmoothieImpl : public Smoothie -
trunk/abdev/BasicCompiler_Common/src/BoostSerializationSupport.cpp
r215 r256 17 17 #include <BoostSerializationSupport.h> 18 18 19 #include <MetaImpl.h>20 #include <logger.h>21 22 19 #include <windows.h> 23 20 … … 119 116 } 120 117 121 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::ReadBina ly( const string &filePath, bool isShowExceptionMessage )118 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::ReadBinary( const string &filePath, bool isShowExceptionMessage ) 122 119 { 123 120 // 入力アーカイブの作成 … … 157 154 return true; 158 155 } 159 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::WriteBina ly( const string &filePath, bool isShowExceptionMessage ) const156 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::WriteBinary( const string &filePath, bool isShowExceptionMessage ) const 160 157 { 161 158 // 出力アーカイブの作成 … … 301 298 302 299 303 template class Jenga::Common::BoostSerializationSupport<MetaImpl>; 300 #include <Compiler.h> 301 #include <logger.h> 302 303 template class Jenga::Common::BoostSerializationSupport<ObjectModule>; 304 304 template class Jenga::Common::BoostSerializationSupport<LoggerSetting>; -
trunk/abdev/BasicCompiler_Common/src/Class.cpp
r232 r256 189 189 190 190 //継承元クラスを取得 191 const CClass *pInheritsClass = compiler. GetMeta().GetClasses().Find(temporary);191 const CClass *pInheritsClass = compiler.objectModule.meta.GetClasses().Find(temporary); 192 192 if( !pInheritsClass ){ 193 193 SmoothieException::Throw(106,temporary,nowLine); … … 219 219 if( !isInheritsClass ){ 220 220 // クラスを一つも継承していないとき 221 const CClass *pObjectClass = compiler. GetMeta().GetClasses().Find("Object");221 const CClass *pObjectClass = compiler.objectModule.meta.GetClasses().Find("Object"); 222 222 if( !pObjectClass ){ 223 223 SmoothieException::Throw(106,"Object",i); … … 243 243 244 244 //継承元クラスを取得 245 const CClass *pInheritsClass = compiler. GetMeta().GetClasses().Find(temporary);245 const CClass *pInheritsClass = compiler.objectModule.meta.GetClasses().Find(temporary); 246 246 if( !pInheritsClass ){ 247 247 SmoothieException::Throw(106,temporary,nowLine); … … 282 282 //継承先が読み取られていないとき 283 283 pobj_LoopRefCheck->add(this->GetName().c_str()); 284 compiler. GetMeta().GetClasses().GetClass_recur(inheritsClass.GetName().c_str());284 compiler.objectModule.meta.GetClasses().GetClass_recur(inheritsClass.GetName().c_str()); 285 285 pobj_LoopRefCheck->del(this->GetName().c_str()); 286 286 } … … 344 344 //継承先が読み取られていないとき 345 345 pobj_LoopRefCheck->add(this->GetName().c_str()); 346 compiler. GetMeta().GetClasses().GetClass_recur(inheritsInterface.GetName().c_str());346 compiler.objectModule.meta.GetClasses().GetClass_recur(inheritsInterface.GetName().c_str()); 347 347 pobj_LoopRefCheck->del(this->GetName().c_str()); 348 348 } … … 427 427 428 428 //関数ハッシュへ登録 429 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Add( NamespaceScopes(), NamespaceScopesCollection(), buffer,nowLine,isVirtual,pobj_c, (bStatic!=0) );429 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Add( NamespaceScopes(), NamespaceScopesCollection(), buffer,nowLine,isVirtual,pobj_c, (bStatic!=0) ); 430 430 if(!pUserProc) return; 431 431 … … 716 716 } 717 717 718 vtbl_offset=compiler. GetDataTable().AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR));718 vtbl_offset=compiler.objectModule.dataTable.AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR)); 719 719 720 720 for( int i=0; i < GetVtblNum(); i++ ){ … … 730 730 731 731 LONG_PTR *pVtbl; 732 pVtbl=(LONG_PTR *)((char *)compiler. GetDataTable().GetPtr()+vtbl_offset);732 pVtbl=(LONG_PTR *)((char *)compiler.objectModule.dataTable.GetPtr()+vtbl_offset); 733 733 734 734 int i; … … 831 831 832 832 // Blittable型管理オブジェクトを初期化 833 compiler. GetMeta().GetBlittableTypes().clear();833 compiler.objectModule.meta.GetBlittableTypes().clear(); 834 834 835 835 // 名前空間管理 … … 951 951 952 952 // Blittable型として登録 953 compiler. GetMeta().GetBlittableTypes().push_back( BlittableType( blittableType, pClass ) );953 compiler.objectModule.meta.GetBlittableTypes().push_back( BlittableType( blittableType, pClass ) ); 954 954 } 955 955 } … … 1656 1656 1657 1657 // TypeDefも見る 1658 int index = compiler. GetMeta().GetTypeDefs().GetIndex( namespaceScopes, name );1658 int index = compiler.objectModule.meta.GetTypeDefs().GetIndex( namespaceScopes, name ); 1659 1659 if( index != -1 ){ 1660 Type type = compiler. GetMeta().GetTypeDefs()[index].GetBaseType();1660 Type type = compiler.objectModule.meta.GetTypeDefs()[index].GetBaseType(); 1661 1661 if( type.IsObject() ){ 1662 1662 return &type.GetClass(); -
trunk/abdev/BasicCompiler_Common/src/Compiler.cpp
r206 r256 16 16 //関数ポインタ(*Function) 17 17 type.SetBasicType( DEF_PTR_PROC ); 18 type.SetIndex( compiler. GetMeta().GetProcPointers().Add( typeName ) );18 type.SetIndex( compiler.objectModule.meta.GetProcPointers().Add( typeName ) ); 19 19 return true; 20 20 } … … 42 42 // Object型だったとき 43 43 if( typeName == "Object" ){ 44 type.SetType( DEF_OBJECT, compiler. GetMeta().GetClasses().GetObjectClassPtr() );44 type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetObjectClassPtr() ); 45 45 return true; 46 46 } … … 48 48 // String型だったとき 49 49 if( typeName == "String" ){ 50 type.SetType( DEF_OBJECT, compiler. GetMeta().GetClasses().GetStringClassPtr() );50 type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetStringClassPtr() ); 51 51 return true; 52 52 } … … 56 56 // TypeDefされた型 57 57 //////////////////// 58 int i=compiler. GetMeta().GetTypeDefs().GetIndex( typeName );58 int i=compiler.objectModule.meta.GetTypeDefs().GetIndex( typeName ); 59 59 if(i!=-1){ 60 type = compiler. GetMeta().GetTypeDefs()[i].GetBaseType();60 type = compiler.objectModule.meta.GetTypeDefs()[i].GetBaseType(); 61 61 return true; 62 62 } 63 63 64 64 //クラス 65 const CClass *pobj_c = compiler. GetMeta().GetClasses().Find( typeName );65 const CClass *pobj_c = compiler.objectModule.meta.GetClasses().Find( typeName ); 66 66 if(pobj_c){ 67 67 type.SetClassPtr( pobj_c ); … … 104 104 } 105 105 else{ 106 if( compiler. GetMeta().GetProcPointers()[type.GetIndex()]->ReturnType().IsNull() ){106 if( compiler.objectModule.meta.GetProcPointers()[type.GetIndex()]->ReturnType().IsNull() ){ 107 107 return "*Sub"; 108 108 } -
trunk/abdev/BasicCompiler_Common/src/Const.cpp
r254 r256 28 28 29 29 //重複チェック 30 if( compiler. GetMeta().GetGlobalConstMacros().IsExist( name )31 || compiler. GetMeta().GetGlobalConsts().IsExist( name ) )30 if( compiler.objectModule.meta.GetGlobalConstMacros().IsExist( name ) 31 || compiler.objectModule.meta.GetGlobalConsts().IsExist( name ) ) 32 32 { 33 33 SetError(15,name,cp); … … 38 38 //定数マクロ 39 39 40 compiler. GetMeta().GetGlobalConstMacros().Add( namespaceScopes, name, buffer + i );40 compiler.objectModule.meta.GetGlobalConstMacros().Add( namespaceScopes, name, buffer + i ); 41 41 } 42 42 else{ … … 44 44 char *expression = buffer + i + 1; 45 45 46 compiler. GetMeta().GetGlobalConsts().Add( namespaceScopes, name, expression );46 compiler.objectModule.meta.GetGlobalConsts().Add( namespaceScopes, name, expression ); 47 47 } 48 48 } -
trunk/abdev/BasicCompiler_Common/src/DataTable.cpp
r206 r256 8 8 #include <stdlib.h> 9 9 10 DataTable::DataTable(){ 11 pdata = malloc( 1 ); 12 size = 0; 13 } 14 DataTable::~DataTable(){ 15 free( pdata ); 10 void DataTable::Realloc( int size ) 11 { 12 this->buffer = (char *)realloc( this->buffer, size + 100 ); 13 this->size = size; 16 14 } 17 15 18 void DataTable::Init(){ 19 free( pdata ); 20 21 pdata = malloc( 1 ); 22 size = 0; 23 } 24 25 int DataTable::AddBinary( const void *pdata, int size ){ 16 int DataTable::AddBinary( const void *buffer, int size ){ 26 17 int retSize = this->size; 27 18 28 this->pdata = realloc( this->pdata, this->size + size ); 29 memcpy( (char *)this->pdata + this->size, pdata, size ); 30 this->size += size; 19 Realloc( this->size + size ); 20 memcpy( (char *)this->buffer + retSize, buffer, size ); 31 21 32 22 return retSize; … … 89 79 const void *DataTable::GetPtr() const 90 80 { 91 return pdata;81 return buffer; 92 82 } 93 83 int DataTable::GetSize() const -
trunk/abdev/BasicCompiler_Common/src/LexicalScope.cpp
r254 r256 72 72 73 73 Variables &vars = UserProc::IsGlobalAreaCompiling() ? 74 compiler. GetMeta().GetGlobalVars() :74 compiler.objectModule.meta.GetGlobalVars() : 75 75 UserProc::CompilingUserProc().GetLocalVars(); 76 76 … … 98 98 99 99 Variables &vars = UserProc::IsGlobalAreaCompiling() ? 100 compiler. GetMeta().GetGlobalVars() :100 compiler.objectModule.meta.GetGlobalVars() : 101 101 UserProc::CompilingUserProc().GetLocalVars(); 102 102 -
trunk/abdev/BasicCompiler_Common/src/NamespaceSupporter.cpp
r206 r256 9 9 { 10 10 NamespaceScopes namespaceScopes( namespaceStr ); 11 if( !compiler. GetMeta().GetNamespaces().IsExist( namespaceScopes ) ){11 if( !compiler.objectModule.meta.GetNamespaces().IsExist( namespaceScopes ) ){ 12 12 return false; 13 13 }
Note:
See TracChangeset
for help on using the changeset viewer.