anchor.diff:      var msgLen, ncol, dt, v, valueLen, row, len = list.length;
       do {
         if (offset + 4 >= len) {
  -        readMore(list, offset, (newList, newOffset) {
  -        });
  +        list = readMore(list, offset);
  +        len = list.length;
  +        offset = 0;
         }
         msgLen = getUint32(list, offset + 1);
         if (offset + msgLen >= len) {
  
positive.code:         }
        }
        p(["qr", qr]);
      } else if (c == 69) { // E for ErrorResponse.
        throw "ErrorResponse: ${inspect(parseFields(list))}";
      } else {
  
negative.code:     return newList;
    }
  
    readMore(list, offset) {
      var newList, b = _socket.readNext();
      if (b != null) {
        var remainingLen = list.length - offset;
        newList = new Uint8List(b.lengthInBytes + remainingLen);
        var newListAddress = newList.buffer.getForeign().value;
        MoreSys.memcpyMemToMem(newListAddress,
            list.buffer.getForeign().value + offset, remainingLen);
        MoreSys.memcpyMemToMem(newListAddress + remainingLen,
            b.getForeign().value, b.lengthInBytes);
      } else {
        throw "Unable to read more data.";
      }
      return newList;
    }
  
    parseDataRows(list, offset, queryResults) {
  