diff options
| author | Vincent Richard <[email protected]> | 2013-02-27 13:59:37 +0000 |
|---|---|---|
| committer | Vincent Richard <[email protected]> | 2013-02-27 13:59:37 +0000 |
| commit | 8378b350dfc612673d1ba3597e9d5bb1347ae944 (patch) | |
| tree | 64212cb2e9e70c23ec25fa209ba1bb15a064067d /src/headerField.cpp | |
| parent | Fixed wrong function called. (diff) | |
| download | vmime-8378b350dfc612673d1ba3597e9d5bb1347ae944.tar.gz vmime-8378b350dfc612673d1ba3597e9d5bb1347ae944.zip | |
Throw exception when an invalid value type is set in a header field.
Diffstat (limited to 'src/headerField.cpp')
| -rw-r--r-- | src/headerField.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/headerField.cpp b/src/headerField.cpp index 0a17abac..59b10e76 100644 --- a/src/headerField.cpp +++ b/src/headerField.cpp @@ -26,6 +26,8 @@ #include "vmime/parserHelpers.hpp" +#include "vmime/exception.hpp" + namespace vmime { @@ -324,6 +326,9 @@ ref <headerFieldValue> headerField::getValue() void headerField::setValue(ref <headerFieldValue> value) { + if (!headerFieldFactory::getInstance()->isValueTypeValid(*this, *value)) + throw exceptions::bad_field_value_type(getName()); + if (value != NULL) m_value = value; } @@ -331,12 +336,18 @@ void headerField::setValue(ref <headerFieldValue> value) void headerField::setValueConst(ref <const headerFieldValue> value) { + if (!headerFieldFactory::getInstance()->isValueTypeValid(*this, *value)) + throw exceptions::bad_field_value_type(getName()); + m_value = value->clone().dynamicCast <headerFieldValue>(); } void headerField::setValue(const headerFieldValue& value) { + if (!headerFieldFactory::getInstance()->isValueTypeValid(*this, value)) + throw exceptions::bad_field_value_type(getName()); + m_value = value.clone().dynamicCast <headerFieldValue>(); } |
