Index: trunk/abdev/BasicCompiler64/Compile_Var.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/Compile_Var.cpp	(revision 409)
+++ trunk/abdev/BasicCompiler64/Compile_Var.cpp	(revision 410)
@@ -208,12 +208,12 @@
 	////////////////////////////
 
-	int memberIndex;
-	int offset = objClass.GetMemberOffset( VarName, &memberIndex );
-	if( memberIndex == objClass.GetDynamicMembers().size() ){
+	const CMember *pMember = objClass.FindDynamicMember( VarName );
+	if( !pMember )
+	{
 		if(isErrorEnabled) SetError(103,VarName,cp);
 		return false;
 	}
 
-	CMember *pMember = objClass.GetDynamicMembers()[memberIndex];
+	int offset = objClass.GetMemberOffset( VarName );
 
 
@@ -491,14 +491,10 @@
 		}
 		else{
-			//クラス内メンバを参照するとき（通常）
-
-			bool isFound = false;
-			BOOST_FOREACH( CMember *pMember, compiler.pCompilingClass->GetDynamicMembers() ){
-				if( pMember->GetName() == VarName ){
-					isFound = true;
-					break;
-				}
-			}
-			if( !isFound ) goto NonClassMember;
+			//クラス内の動的メンバを参照するとき（通常）
+
+			if( !compiler.pCompilingClass->HasDynamicMember( VarName ) )
+			{
+				goto NonClassMember;
+			}
 		}
 
@@ -817,5 +813,5 @@
 				i=GetOneParameter(InitBuf,i,temporary);
 
-				i3=objClass.GetMemberOffset( pMember->GetName().c_str(), NULL );
+				i3=objClass.GetMemberOffset( pMember->GetName().c_str() );
 
 				if(!SetInitGlobalData(offset+i3,
@@ -985,5 +981,5 @@
 				i=GetOneParameter(InitBuf,i,temporary);
 
-				i3=objClass.GetMemberOffset( pMember->GetName().c_str(), NULL );
+				i3=objClass.GetMemberOffset( pMember->GetName().c_str() );
 
 				if(!InitLocalVar(offset+i3,
