From 7195e12af48f23c7ef1b719234d78690c8ebdff2 Mon Sep 17 00:00:00 2001 From: Chris Frey Date: Tue, 2 Nov 2010 18:11:14 -0400 Subject: [PATCH] lib: tightened up vBase class... now always has a valid m_format --- src/vbase.cc | 14 ++++++++++++-- src/vbase.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/vbase.cc b/src/vbase.cc index 9d7ec09d..6d6ffd07 100644 --- a/src/vbase.cc +++ b/src/vbase.cc @@ -242,10 +242,17 @@ std::string vAttr::GetAllParams(const char *name) // vCalendar vBase::vBase() - : m_format(0) + : m_format(b_vformat_new()) { } +vBase::vBase(b_VFormat *format) + : m_format(format) +{ + if( !format ) + throw Barry::Error("Cannot construct vBase with null format"); +} + vBase::~vBase() { if( m_format ) { @@ -256,6 +263,9 @@ vBase::~vBase() void vBase::SetFormat(b_VFormat *format) { + if( !format ) + throw Barry::Error("Cannot set vBase with null format"); + if( m_format ) { b_vformat_free(m_format); m_format = 0; @@ -267,7 +277,7 @@ void vBase::Clear() { if( m_format ) { b_vformat_free(m_format); - m_format = 0; + m_format = b_vformat_new(); } } diff --git a/src/vbase.h b/src/vbase.h index 06b06e5e..0210e9f4 100644 --- a/src/vbase.h +++ b/src/vbase.h @@ -122,6 +122,7 @@ class BXEXPORT vBase public: protected: vBase(); + explicit vBase(b_VFormat *format); virtual ~vBase(); b_VFormat* Format() { return m_format; } -- 2.11.4.GIT