Index: BasicCompiler32/CParameter.cpp
===================================================================
--- BasicCompiler32/CParameter.cpp	(revision 62)
+++ BasicCompiler32/CParameter.cpp	(revision 63)
@@ -130,6 +130,5 @@
 
 void CParameter::SetObjectParameter(CClass *pobj_Class,LPSTR Parameter){
-	int object_size;
-	object_size=GetSizeOfClass(pobj_Class);
+	int object_size = pobj_Class->GetSize();
 
 	//push object_size
Index: BasicCompiler32/Compile_CallProc.cpp
===================================================================
--- BasicCompiler32/Compile_CallProc.cpp	(revision 62)
+++ BasicCompiler32/Compile_CallProc.cpp	(revision 63)
@@ -259,6 +259,5 @@
 		//////////////////////////////////////////////////////
 
-		int object_size;
-		object_size=GetSizeOfClass(psi->u.Return_pobj_c);
+		int object_size = psi->u.Return_pobj_c->GetSize();
 
 		//push object_size
Index: BasicCompiler32/Compile_ProcOp.cpp
===================================================================
--- BasicCompiler32/Compile_ProcOp.cpp	(revision 62)
+++ BasicCompiler32/Compile_ProcOp.cpp	(revision 63)
@@ -515,19 +515,14 @@
 
 			//実体クラスを持つメンバのコンストラクタ（引数有りを除く）を呼び出す
-			int offset;
-			int MemberTypeSize;
-			int MemberObjectNum;
-			if(pobj_CompilingClass->vtbl_num) offset=PTR_SIZE;
-			else offset=0;
 			for(i3=0;i3<pobj_CompilingClass->iMemberNum;i3++){
 				CMember *pMember = pobj_CompilingClass->ppobj_Member[i3];
-				MemberTypeSize=
+				int MemberTypeSize=
 					GetTypeSize(pMember->TypeInfo.type,
 						pMember->TypeInfo.u.lpIndex);
 
-				MemberObjectNum=
+				int MemberObjectNum=
 					JumpSubScripts(pMember->SubScripts);
 
-				offset=GetSizeOfClassMember(pobj_CompilingClass,pMember->name,NULL);
+				int offset = pobj_CompilingClass->GetMemberOffset( pMember->name, NULL );
 
 				if(pMember->TypeInfo.type==DEF_OBJECT && pMember->IsRef() == false){
@@ -561,5 +556,5 @@
 				pobj_CompilingClass->IsAbstract()==false){
 					//関数テーブルに値をセット
-					offset=pobj_CompilingClass->GetVtblGlobalOffset();
+					int offset = (int)pobj_CompilingClass->GetVtblGlobalOffset();
 
 					//mov eax,offset
Index: BasicCompiler32/Compile_Set_Var.cpp
===================================================================
--- BasicCompiler32/Compile_Set_Var.cpp	(revision 62)
+++ BasicCompiler32/Compile_Set_Var.cpp	(revision 63)
@@ -46,6 +46,5 @@
 				//※コピーを行う
 
-				int object_size;
-				object_size=GetSizeOfClass((CClass *)lpVarIndex);
+				int object_size = pVarClass->GetSize();
 
 				//mov ecx,object_size
Index: BasicCompiler32/Compile_Var.cpp
===================================================================
--- BasicCompiler32/Compile_Var.cpp	(revision 62)
+++ BasicCompiler32/Compile_Var.cpp	(revision 63)
@@ -25,8 +25,11 @@
 		*pType=MAKE_PTR_TYPE(NATURAL_TYPE(*pType),PTR_LEVEL(*pType)-1);
 		if((*pType)==DEF_OBJECT){
+			CClass *pClass = (CClass *)lpIndex;
+			int objsize = pClass->GetSize();
+
 			//imul ebx,objsize
 			OpBuffer[obp++]=(char)0x69;
 			OpBuffer[obp++]=(char)0xDB;
-			*((long *)(OpBuffer+obp))=GetSizeOfClassMember((CClass *)lpIndex,NULL,NULL);
+			*((long *)(OpBuffer+obp))=objsize;
 			obp+=sizeof(long);
 		}
@@ -158,5 +161,5 @@
 }
 BOOL GetMemberOffset(bool isErrorEnabled, bool isWriteAccess, CClass *pobj_c, char *member, int *pType, RELATIVE_VAR *pRelativeVar, LONG_PTR *plpNestIndex, BOOL bPrivateAccess){
-	int i,offset;
+	int i;
 
 	//クラス、配列の構成要素を解析する
@@ -173,5 +176,5 @@
 	////////////////////////////
 
-	offset=GetSizeOfClassMember(pobj_c,VarName,&i);
+	int offset=pobj_c->GetMemberOffset( VarName, &i );
 	if(i==pobj_c->iMemberNum){
 		if(isErrorEnabled) SetError(103,VarName,cp);
@@ -789,5 +792,5 @@
 				i=GetOneParameter(InitBuf,i,temporary);
 
-				i3=GetSizeOfClassMember(pobj_c,pobj_c->ppobj_Member[i2]->name,NULL);
+				i3=pobj_c->GetMemberOffset( pobj_c->ppobj_Member[i2]->name, NULL );
 
 				if(!SetInitGlobalData(offset+i3,
@@ -922,5 +925,5 @@
 				i=GetOneParameter(InitBuf,i,temporary);
 
-				i3=GetSizeOfClassMember(pobj_c,pobj_c->ppobj_Member[i2]->name,NULL);
+				i3 = pobj_c->GetMemberOffset( pobj_c->ppobj_Member[i2]->name, NULL );
 
 				if(!InitLocalVar(offset+i3,
Index: BasicCompiler32/NumOpe.cpp
===================================================================
--- BasicCompiler32/NumOpe.cpp	(revision 62)
+++ BasicCompiler32/NumOpe.cpp	(revision 63)
@@ -75,6 +75,5 @@
 
 	extern CClass *pobj_StringClass;
-	int object_size;
-	object_size=GetSizeOfClass(pobj_StringClass);
+	int object_size = pobj_StringClass->GetSize();
 
 	//push object_size
Index: BasicCompiler32/OperatorProc.cpp
===================================================================
--- BasicCompiler32/OperatorProc.cpp	(revision 62)
+++ BasicCompiler32/OperatorProc.cpp	(revision 63)
@@ -125,6 +125,5 @@
 		//////////////////////////////////////////////////////
 
-		int object_size;
-		object_size=GetSizeOfClass(psi->u.Return_pobj_c);
+		int object_size = psi->u.Return_pobj_c->GetSize();
 
 		//push object_size
Index: BasicCompiler32/VarList.cpp
===================================================================
--- BasicCompiler32/VarList.cpp	(revision 62)
+++ BasicCompiler32/VarList.cpp	(revision 63)
@@ -165,6 +165,5 @@
 		}
 
-		LONG_PTR offset;
-		offset=GetSizeOfClassMember(pobj_c,pobj_c->ppobj_Member[i]->name,&i2);
+		LONG_PTR offset = pobj_c->GetMemberOffset( pobj_c->ppobj_Member[i]->name, &i2 );
 
 		if(pobj_c->ppobj_Member[i]->SubScripts[0]!=-1){
@@ -423,5 +422,5 @@
 
 	for(i=0;i<psi->pobj_ParentClass->iMemberNum;i++){
-		offset=GetSizeOfClassMember(psi->pobj_ParentClass,psi->pobj_ParentClass->ppobj_Member[i]->name,&i2);
+		offset = psi->pobj_ParentClass->GetMemberOffset( psi->pobj_ParentClass->ppobj_Member[i]->name, &i2 );
 
 		if(psi->pobj_ParentClass->ppobj_Member[i]->SubScripts[0]!=-1){
Index: BasicCompiler32/WatchList.cpp
===================================================================
--- BasicCompiler32/WatchList.cpp	(revision 62)
+++ BasicCompiler32/WatchList.cpp	(revision 63)
@@ -78,8 +78,11 @@
 	if(PTR_LEVEL(*pType)){
 		*pType=MAKE_PTR_TYPE(NATURAL_TYPE(*pType),PTR_LEVEL(*pType)-1);
-		if((*pType)==DEF_OBJECT)
-			array_num*=GetSizeOfClass((CClass *)lpIndex);
-		else
-			array_num*=GetTypeSize(*pType,-1);
+		if((*pType)==DEF_OBJECT){
+			CClass *pClass = (CClass *)lpIndex;
+			array_num *= pClass->GetSize();
+		}
+		else{
+			array_num *= GetTypeSize(*pType,-1);
+		}
 	}
 	else{
@@ -100,5 +103,5 @@
 
 BOOL Debugging_GetMember(CClass *pobj_c,char *member,int *pType,RELATIVE_VAR *pRelativeVar,LONG_PTR *plpNestIndex,BOOL bPrivateAccess){
-	int i,i2,offset;
+	int i,i2;
 
 	//直接参照に切り替え
@@ -120,5 +123,5 @@
 	////////////////////////////
 
-	offset=GetSizeOfClassMember(pobj_c,VarName,&i);
+	int offset = pobj_c->GetMemberOffset( VarName, &i );
 	if(i==pobj_c->iMemberNum) return 0;
 
