/// <summary>return false if class not completely initialized, otherwise true</summary> internal virtual bool ContinueSet(Transaction trans, IUpdateDepth updateDepth) { if (!BitIsTrue(Const4.Continue)) { return(true); } if (!_class.StateOK()) { return(false); } if (!_class.AspectsAreInitialized()) { return(false); } if (DTrace.enabled) { DTrace.Continueset.Log(GetID()); } BitFalse(Const4.Continue); var context = new MarshallingContext(trans, this, updateDepth, true ); Handlers4.Write(ClassMetadata().TypeHandler(), context, GetObject()); var pointer = context.AllocateSlot(); var buffer = context.ToWriteBuffer(pointer); var container = trans.Container(); container.WriteNew(trans, pointer, _class, buffer); var obj = _object; ObjectOnNew(trans, obj); if (_class.HasIdentity()) { _object = container.NewWeakReference(this, obj); } SetStateClean(); EndProcessing(); return(true); }