From 11ce866cbde146b40bff8ccf394db44ba963a20f Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Thu, 23 Jun 2011 12:08:20 +0000 Subject: [PATCH] Revert unintended change, and clarified TODO a bit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42290 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../value/value_nodes/BMessageValueNode.cpp | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp b/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp index cc99bcf432..cf2e273482 100644 --- a/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp +++ b/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp @@ -21,6 +21,39 @@ #include "ValueNodeContainer.h" +// minimal replica of BMessage's class structure for +// extracting fields +class BMessageValue { + public: + uint32 what; + + virtual ~BMessageValue(); + + struct message_header; + struct field_header; + + message_header* fHeader; + field_header* fFields; + uint8* fData; + + uint32 fFieldsAvailable; + size_t fDataAvailable; + + mutable BMessage* fOriginal; + + BMessage* fQueueLink; + // fQueueLink is used by BMessageQueue to build a linked list + + void* fArchivingPointer; + + uint32 fReserved[8]; + + virtual void _ReservedMessage1(); + virtual void _ReservedMessage2(); + virtual void _ReservedMessage3(); +}; + + // #pragma mark - BMessageValueNode @@ -82,9 +115,8 @@ BMessageValueNode::ResolvedLocationAndValue(ValueLoader* valueLoader, TRACE_LOCALS("BMessage: Address: 0x%" B_PRIx64 "\n", addressData.ToUInt64()); - - // TODO: redo this by looking up class members off the type - // and resolving them instead + // TODO: redo this by looking up fHeader et al off the type + // object and resolving their locations instead uint8 classBuffer[sizeof(BMessage)]; error = valueLoader->LoadRawValue(addressData, sizeof(BMessage), classBuffer);