From cdcacd7f9f6da3587cfe620e93f8764a6f1ab56c Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 30 Jul 2009 02:34:41 +0000 Subject: [PATCH] * Added missing ToReferenceable(). * _SetTo(const BVariant&): Acquire a reference for the wrong object. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31959 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/shared/Variant.h | 1 + src/kits/shared/Variant.cpp | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/headers/private/shared/Variant.h b/headers/private/shared/Variant.h index 0a1fb80315..bc497a30e0 100644 --- a/headers/private/shared/Variant.h +++ b/headers/private/shared/Variant.h @@ -86,6 +86,7 @@ public: double ToDouble() const; void* ToPointer() const; const char* ToString() const; + BReferenceable* ToReferenceable() const; void SwapEndianess(); // has effect only on scalar types (pointer diff --git a/src/kits/shared/Variant.cpp b/src/kits/shared/Variant.cpp index 980de5b6d7..1d63447367 100644 --- a/src/kits/shared/Variant.cpp +++ b/src/kits/shared/Variant.cpp @@ -336,13 +336,21 @@ BVariant::_SetTo(const BVariant& other) } } else if ((other.fFlags & B_VARIANT_REFERENCEABLE_DATA) != 0) { if (other.fReferenceable != NULL) - fReferenceable->AcquireReference(); + other.fReferenceable->AcquireReference(); } memcpy(this, &other, sizeof(BVariant)); } +BReferenceable* +BVariant::ToReferenceable() const +{ + return (fFlags & B_VARIANT_REFERENCEABLE_DATA) != 0 + ? fReferenceable : NULL; +} + + void BVariant::SwapEndianess() {