Changeset 120 in dev
- Timestamp:
- May 13, 2007, 8:50:04 AM (18 years ago)
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler32/Compile_Var.cpp
r116 r120 1104 1104 if( pVar->IsStruct() ){ 1105 1105 int alignment = pVar->GetClass().iAlign; 1106 1106 1107 if( alignment ){ 1107 1108 if( AllLocalVarSize % alignment ){ 1108 1109 AllLocalVarSize += alignment - (AllLocalVarSize % alignment); 1110 } 1111 } 1112 1113 if( alignment == PTR_SIZE*2 ){ 1114 // ポインタに要するサイズよりも一回り大きなアラインメントが指定されているとき 1115 // (例:CONTEXT構造体など) 1116 // 呼び出し側のオフセットズレを考慮する 1117 1118 if( 0 == ( UserProc::CompilingUserProc().RealParams().GetMemorySize() + PTR_SIZE/*ret分*/ ) % alignment ){ 1119 AllLocalVarSize += PTR_SIZE; 1109 1120 } 1110 1121 } -
BasicCompiler64/Compile_Var.cpp
r116 r120 1090 1090 if( pVar->IsStruct() ){ 1091 1091 int alignment = pVar->GetClass().iAlign; 1092 1092 1093 if( alignment ){ 1093 1094 if( AllLocalVarSize % alignment ){ 1094 1095 AllLocalVarSize += alignment - (AllLocalVarSize % alignment); 1096 } 1097 } 1098 1099 if( alignment == PTR_SIZE*2 ){ 1100 // ポインタに要するサイズよりも一回り大きなアラインメントが指定されているとき 1101 // (例:CONTEXT構造体など) 1102 // 呼び出し側のオフセットズレを考慮する 1103 1104 if( 0 == ( UserProc::CompilingUserProc().RealParams().GetMemorySize() + PTR_SIZE/*ret分*/ ) % alignment ){ 1105 AllLocalVarSize += PTR_SIZE; 1095 1106 } 1096 1107 } -
BasicCompiler_Common/Class.cpp
r117 r120 1089 1089 1090 1090 if( method->pUserProc->GetName() == temporary ){ 1091 if( Parameter::Equals( method->pUserProc->Params(),pUserProc->Params() ) ){1091 if( method->pUserProc->Params().Equals( pUserProc->Params() ) ){ 1092 1092 //関数名、パラメータ属性が合致したとき 1093 1093 SetError(15,pUserProc->GetName().c_str(),nowLine); … … 1103 1103 foreach( CMethod *method, pobj_c->methods ){ 1104 1104 if( method->pUserProc->GetName() == temporary ){ 1105 if( Parameter::Equals( method->pUserProc->Params(),pUserProc->Params() ) ){1105 if( method->pUserProc->Params().Equals( pUserProc->Params() ) ){ 1106 1106 1107 1107 if(method->bVirtual){ -
BasicCompiler_Common/Parameter.h
r78 r120 2 2 3 3 #include "Type.h" 4 5 class Parameter;6 typedef vector<Parameter *> Parameters;7 4 8 5 class Parameter : public Type … … 88 85 return false; 89 86 } 87 }; 90 88 89 class Parameters : public vector<Parameter *> 90 { 91 public: 91 92 92 static bool Equals( const Parameters ¶msA, const Parameters paramsB ){ 93 if( paramsA.size() != paramsB.size() ){ 93 bool Equals( const Parameters ¶ms ) const 94 { 95 if( this->size() != params.size() ){ 94 96 return false; 95 97 } 96 98 97 int max = (int) paramsA.size();99 int max = (int)this->size(); 98 100 for( int i=0; i<max; i++ ){ 99 if( ! paramsA[i]->Equals( *paramsB[i] ) ){101 if( !(*this)[i]->Equals( *params[i] ) ){ 100 102 return false; 101 103 } … … 104 106 return true; 105 107 } 108 109 int GetMemorySize() const 110 { 111 return (int)this->size() * PTR_SIZE; 112 } 106 113 }; -
BasicCompiler_Common/Subroutine.cpp
r113 r120 622 622 //重複エラーチェックを行う 623 623 if( pUserProc->IsEqualSymbol( *psi2 ) ){ 624 if( Parameter::Equals( psi2->Params(),pUserProc->Params() ) ){624 if( psi2->Params().Equals( pUserProc->Params() ) ){ 625 625 SetError(15,pUserProc->GetName().c_str(),nowLine); 626 626 return 0; -
ProjectEditor/SubOperation.cpp
r118 r120 574 574 if(lstrcmp(str,"Single")==0) return -1; 575 575 if(lstrcmpi(str,"Sleep")==0) return COM_SLEEP; 576 if(lstrcmp(str,"Static")==0) return -1; 576 577 if(lstrcmp(str,"String")==0) return -1; 577 578 if(lstrcmpi(str,"Sub")==0) return COM_SUB;
Note:
See TracChangeset
for help on using the changeset viewer.