Index: trunk/abdev/BasicCompiler_Common/src/Procedure.cpp
===================================================================
--- trunk/abdev/BasicCompiler_Common/src/Procedure.cpp	(revision 206)
+++ trunk/abdev/BasicCompiler_Common/src/Procedure.cpp	(revision 208)
@@ -30,29 +30,9 @@
 		return GetParentClassPtr()->GetNamespaceScopes();
 	}
-	return namespaceScopes;
+	return Symbol::GetNamespaceScopes();
 }
 const NamespaceScopesCollection &UserProc::GetImportedNamespaces() const
 {
 	return importedNamespaces;
-}
-bool UserProc::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const
-{
-	if( GetName() != name ){
-		return false;
-	}
-
-	return compiler.GetNamespaceSupporter().IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes );
-}
-bool UserProc::IsEqualSymbol( const UserProc &globalProc ) const
-{
-	return IsEqualSymbol( globalProc.GetNamespaceScopes(), globalProc.GetName() );
-}
-bool UserProc::IsEqualSymbol( const string &fullName ) const
-{
-	char AreaName[VN_SIZE] = "";		//オブジェクト変数
-	char NestName[VN_SIZE] = "";		//入れ子メンバ
-	bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );
-
-	return IsEqualSymbol( NamespaceScopes( AreaName ), NestName );
 }
 bool UserProc::IsVirtual() const
@@ -596,5 +576,5 @@
 	UserProc *pUserProc = GetHashArrayElement( simpleName );
 	while(pUserProc){
-		if(!pUserProc->GetParentClassPtr()){
+		if( pUserProc->IsGlobalProcedure() ){
 			if( pUserProc->IsEqualSymbol( localName ) ){
 				subs.push_back( pUserProc );
@@ -606,36 +586,4 @@
 }
 
-
-bool DllProc::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const
-{
-	if( GetName() != name ){
-		return false;
-	}
-	return compiler.GetNamespaceSupporter().IsSameAreaNamespace( this->GetNamespaceScopes(), namespaceScopes );
-}
-bool DllProc::IsEqualSymbol( const string &fullName ) const
-{
-	char AreaName[VN_SIZE] = "";		//オブジェクト変数
-	char NestName[VN_SIZE] = "";		//入れ子メンバ
-	bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );
-
-	if( IsEqualSymbol( NamespaceScopes( AreaName ), NestName ) ){
-		return true;
-	}
-
-	if( isNest ){
-		// 静的メンバを考慮
-
-		char AreaName2[VN_SIZE] = "";		//オブジェクト変数
-		char NestName2[VN_SIZE] = "";		//入れ子メンバ
-		bool isNest = SplitMemberName( AreaName, AreaName2, NestName2 );
-		lstrcat( NestName2, "." );
-		lstrcat( NestName2, NestName );
-
-		return IsEqualSymbol( NamespaceScopes( AreaName2 ), NestName2 );
-	}
-
-	return false;
-}
 bool DllProc::SetParamsAndReturnType( const char *sourceOfParams, int nowLine ){
 	int i = 0;
Index: trunk/abdev/BasicCompiler_Common/src/Symbol.cpp
===================================================================
--- trunk/abdev/BasicCompiler_Common/src/Symbol.cpp	(revision 206)
+++ trunk/abdev/BasicCompiler_Common/src/Symbol.cpp	(revision 208)
@@ -52,9 +52,9 @@
 	return false;
 }
-bool Symbol::IsEqualSymbol( const string &fullName ) const
+bool Symbol::IsEqualSymbol( const char *fullName ) const
 {
 	char AreaName[VN_SIZE] = "";		//オブジェクト変数
 	char NestName[VN_SIZE] = "";		//入れ子メンバ
-	bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );
+	bool isNest = SplitMemberName( fullName, AreaName, NestName );
 
 	if( IsEqualSymbol( NamespaceScopes( AreaName ), NestName ) ){
