Changeset 327 in dev for trunk/abdev/BasicCompiler_Common/Subroutine.cpp
- Timestamp:
- Sep 25, 2007, 9:23:38 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/Subroutine.cpp
r319 r327 61 61 if(*ppInfo) return PROC_BUILTIN; 62 62 63 //関数ポインタ 63 64 ///////////////////////////////////////////////////////////////// 65 //関数ポインタ、またはデリゲート 66 ///////////////////////////////////////////////////////////////// 67 64 68 Type type; 65 69 if( !GetVarType( name, type, false ) ){ 66 70 return 0; 67 71 } 68 if( type.IsProcPtr() ){ 72 73 if( type.IsProcPtr() ) 74 { 75 // 関数ポインタ 69 76 return PROC_PTR; 77 } 78 79 if( type.IsObject() && type.GetClass().IsDelegate() ) 80 { 81 // デリゲート 82 return PROC_DELEGATE; 70 83 } 71 84 … … 185 198 } 186 199 } 200 } 201 else if( kind == PROC_DELEGATE ) 202 { 203 // デリゲート 204 char tempName[VN_SIZE]; 205 lstrcpy( tempName, fullCallName ); 206 lstrcat( tempName, ".Call" ); 207 208 void *pInfo=(void *)GetSubHash( tempName ); 209 if( !pInfo ) 210 { 211 Jenga::Throw( "デリゲートの内部Callメソッドの取得に失敗" ); 212 } 213 214 return CallProc( PROC_DEFAULT, pInfo, tempName, lpszParms, resultType, isCallOn ); 187 215 } 188 216 else{
Note:
See TracChangeset
for help on using the changeset viewer.