public static boolean helpFinalizeClass(Stella_Class renamed_Class, Surrogate finalizedparent) {
    if (renamed_Class.classFinalizedP) {
      return (true);
    }
    KeyValueList.setDynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_BADp, Stella.TRUE_WRAPPER, null);
    { Surrogate renamed_Super = null;
      Cons iter000 = renamed_Class.classDirectSupers.theConsList;

      for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
        renamed_Super = ((Surrogate)(iter000.value));
        if (!(renamed_Super == finalizedparent)) {
          { Stella_Class superclass = Surrogate.typeToClass(renamed_Super);

            if (superclass != null) {
              if (!(Stella_Class.helpFinalizeClass(superclass, null))) {
                return (false);
              }
            }
            else {
              return (false);
            }
          }
        }
      }
    }
    if (renamed_Class.classFinalizedP) {
      KeyValueList.setDynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_BADp, null, null);
      return (true);
    }
    Stella_Class.finalizeOneClass(renamed_Class);
    { Surrogate sub = null;
      Cons iter001 = renamed_Class.classDirectSubs.theConsList;

      for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
        sub = ((Surrogate)(iter001.value));
        { Stella_Class subclass = Surrogate.typeToClass(sub);

          if (subclass != null) {
            Stella_Class.helpFinalizeClass(subclass, renamed_Class.classType);
          }
        }
      }
    }
    KeyValueList.setDynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_BADp, null, null);
    return (true);
  }