| 26 | namespace Mona { |
| 27 | |
| 28 | UInt32 ReferableReader::read(DataWriter& writer, UInt32 count) { |
| 29 | if (_recursive) |
| 30 | return DataReader::read(writer, count); |
| 31 | // start read (new writer!) |
| 32 | _recursive = true; |
| 33 | UInt32 result(DataReader::read(writer,count)); |
| 34 | for (auto& it : _references) { |
| 35 | if (it.second.level>0) |
| 36 | WARN(typeid(*this).name()," has open some complex objects withoiut closing them") |
| 37 | } |
| 38 | _references.clear(); |
| 39 | _recursive = false; |
| 40 | return result; |
| 41 | } |
| 42 | |
| 43 | ReferableReader::Reference* ReferableReader::beginRepeatable(UInt64 readerRef, UInt64 writerRef) { |
| 44 | if (!readerRef) |