Changeset 28 in dev for BasicCompiler_Common/hash.cpp
- Timestamp:
- Jan 8, 2007, 6:34:44 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/hash.cpp
r27 r28 83 83 int i; 84 84 85 86 85 char name[VN_SIZE]; 87 86 … … 102 101 char ObjName[VN_SIZE]; //オブジェクト変数 103 102 char NestMember[VN_SIZE]; //入れ子メンバ 104 BOOL bObjectMember; 105 lstrcpy(ObjName,name); 106 for(i=lstrlen(ObjName)-1;i>=0;i--){ 107 if(ObjName[i]=='.'||(ObjName[i]==1&&ObjName[i+1]==ESC_PSMEM)) 108 break; 109 } 110 if(i==-1) bObjectMember=0; 111 else{ 112 if(ObjName[i]=='.') 113 lstrcpy(NestMember,ObjName+i+1); 114 else 115 lstrcpy(NestMember,ObjName+i+2); 116 ObjName[i]=0; 117 bObjectMember=1; 118 } 119 120 if(bObjectMember){ 103 bool isObjectMember = SplitMemberName( name, ObjName, NestMember ); 104 if( !isObjectMember ) lstrcpy(ObjName,name); 105 106 if(isObjectMember){ 121 107 //オブジェクトのメンバ関数の場合 122 108 … … 129 115 else{ 130 116 pobj_c=pobj_DBClass->check(ObjName); 131 if( ! pobj_c ){ 117 if( pobj_c ){ 118 isStatic = true; 119 } 120 else{ 132 121 //"->"によってオブジェクトを指定する通常のメンバ関数呼び出し 133 122 int type = GetVarType(ObjName,(LONG_PTR *)&pobj_c,0); … … 136 125 } 137 126 138 // 静的メソッドから取得 139 for(i=0;i<pobj_c->iStaticMethodNum;i++){ 140 if(lstrcmp(NestMember,pobj_c->ppobj_StaticMethod[i]->psi->name)==0){ 141 ppArray_si[num]=pobj_c->ppobj_StaticMethod[i]->psi; 142 num++; 143 } 144 } 145 146 //動的メソッドから取得 147 148 //※オーバーライドされた関数を先にサーチする必要があるため、バックサーチを行う 149 for(i=pobj_c->iMethodNum-1;i>=0;i--){ 150 if(lstrcmp(NestMember,pobj_c->ppobj_Method[i]->psi->name)==0){ 151 ppArray_si[num]=pobj_c->ppobj_Method[i]->psi; 152 num++; 127 if( isStatic ){ 128 // 静的メソッドから取得 129 for(i=0;i<pobj_c->iStaticMethodNum;i++){ 130 if(lstrcmp(NestMember,pobj_c->ppobj_StaticMethod[i]->psi->name)==0){ 131 ppArray_si[num]=pobj_c->ppobj_StaticMethod[i]->psi; 132 num++; 133 } 134 } 135 } 136 else{ 137 //動的メソッドから取得 138 139 //※オーバーライドされた関数を先にサーチする必要があるため、バックサーチを行う 140 for(i=pobj_c->iMethodNum-1;i>=0;i--){ 141 if(lstrcmp(NestMember,pobj_c->ppobj_Method[i]->psi->name)==0){ 142 ppArray_si[num]=pobj_c->ppobj_Method[i]->psi; 143 num++; 144 } 153 145 } 154 146 }
Note:
See TracChangeset
for help on using the changeset viewer.