diff --git a/src/hx/cppia/CppiaClasses.cpp b/src/hx/cppia/CppiaClasses.cpp index aed4987fd..8519d1ce6 100644 --- a/src/hx/cppia/CppiaClasses.cpp +++ b/src/hx/cppia/CppiaClasses.cpp @@ -959,10 +959,17 @@ void CppiaClassInfo::linkTypes() std::vector combinedVars(cppiaSuper->memberVars ); for(int i=0;inameId==memberVars[i]->nameId) - printf("Warning duplicate member var %s\n", cppia.strings[memberVars[i]->nameId].out_str()); - combinedVars.push_back(memberVars[i]); + { + // Redefinition in subclass, child field reuses parent's storage slot. + memberVars[i]->offset = combinedVars[j]->offset; + combinedVars[j] = memberVars[i]; + found = true; + } + if (!found) + combinedVars.push_back(memberVars[i]); } memberVars.swap(combinedVars);