public void Remove(JsonObject obj) { ReadOnlySpan <byte> values = obj._jsonData; Span <byte> db = obj._database; DbRow objRecord = MemoryMarshal.Read <DbRow>(db); int reduce = objRecord.Length; int idx = _database.IndexOf(db); int sliceVal = idx + db.Length; if (idx >= DbRow.Size) { reduce++; reduce++; idx -= DbRow.Size; } Span <byte> temp = _database.Slice(0, idx); for (int i = 0; i < temp.Length; i += DbRow.Size) { DbRow record = MemoryMarshal.Read <DbRow>(temp.Slice(i)); if (!record.IsSimpleValue) { DbRow myObj = MemoryMarshal.Read <DbRow>(_database.Slice(i + record.Length * DbRow.Size)); if (myObj.Location > objRecord.Location) { DbRow fixup = new DbRow(record.Type, record.Location, record.Length - reduce); MemoryMarshal.Write(temp.Slice(i), ref fixup); } } } _database.Slice(sliceVal).CopyTo(_database.Slice(idx)); _database = _database.Slice(0, _database.Length - db.Length - DbRow.Size); }