557 |
return chain; |
return chain; |
558 |
} |
} |
559 |
|
|
560 |
Member _popMemberBlob(const char*& p, const char* end) { |
static Member _popMemberBlob(const char*& p, const char* end) { |
561 |
_Blob blob = _decodeBlob(p, end, false); |
_Blob blob = _decodeBlob(p, end, false); |
562 |
p = blob.p; |
p = blob.p; |
563 |
end = blob.end; |
end = blob.end; |
571 |
m.m_type = _popDataTypeBlob(p, end); |
m.m_type = _popDataTypeBlob(p, end); |
572 |
assert(m.type()); |
assert(m.type()); |
573 |
assert(!m.name().empty()); |
assert(!m.name().empty()); |
574 |
assert(m.uid() != NULL); |
assert(m.uid().isValid()); |
575 |
return m; |
return m; |
576 |
} |
} |
577 |
|
|
591 |
return members; |
return members; |
592 |
} |
} |
593 |
|
|
594 |
void _popPrimitiveValue(const char*& p, const char* end, Object& obj) { |
static void _popPrimitiveValue(const char*& p, const char* end, Object& obj) { |
595 |
const DataType& type = obj.type(); |
const DataType& type = obj.type(); |
596 |
if (type.isPrimitive() && !type.isPointer()) { |
if (type.isPrimitive() && !type.isPointer()) { |
597 |
obj.m_data.resize(type.size()); |
obj.m_data.resize(type.size()); |
640 |
} |
} |
641 |
} |
} |
642 |
|
|
643 |
Object _popObjectBlob(const char*& p, const char* end) { |
static Object _popObjectBlob(const char*& p, const char* end) { |
644 |
_Blob blob = _decodeBlob(p, end, false); |
_Blob blob = _decodeBlob(p, end, false); |
645 |
p = blob.p; |
p = blob.p; |
646 |
end = blob.end; |
end = blob.end; |