anchor.diff:    C := FClassRefList[ReadInt(HproseTagOpenbrace)];
     if VarType(C) = varNativeInt then begin
       RegisteredClass := TClass(NativeInt(C));
  -    if (AClass = nil) or
  +    if not Assigned(AClass) or
          RegisteredClass.InheritsFrom(AClass) then AClass := RegisteredClass;
     end;
     AttrNames := VarToList(FAttrRefMap[C]);
  
positive.code:   if IsSmartObject(ValueName) then ValueName := 'ISmartObject';
    KeyInfo := TClassManager.TypeInfo(KeyName);
    ValueInfo := TClassManager.TypeInfo(ValueName);
    if (KeyInfo = nil) or (ValueInfo = nil) then
      raise Exception.Create('Can not serialize ' + ClassName)
    else begin
      case KeyInfo^.Kind of
  
negative.code: 
  procedure DynArrayAddRef(P: Pointer);
  begin
    if Assigned(P) then
      Inc(PDynArrayRec(PByte(P) - SizeOf(TDynArrayRec))^.RefCnt);
  end;
  
  