summaryrefslogtreecommitdiff
path: root/algparam.cpp
diff options
context:
space:
mode:
authorweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-02-13 12:18:26 +0000
committerweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-02-13 12:18:26 +0000
commit4e4793cc591e26c788b53c487bee7cab2d377f5e (patch)
treead72361b06ff671420b32b70bab9081ad2d7be32 /algparam.cpp
parent21e37311f74460550001f25240be0ebd83e11ea9 (diff)
downloadcryptopp-4e4793cc591e26c788b53c487bee7cab2d377f5e.tar.gz
port to Sun Studio 12's 64-bit C++ Compiler 5.9 Patch 124864-09 2008/12/16
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@432 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'algparam.cpp')
-rw-r--r--algparam.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/algparam.cpp b/algparam.cpp
index 3c55640..c9da677 100644
--- a/algparam.cpp
+++ b/algparam.cpp
@@ -23,7 +23,8 @@ bool AlgorithmParametersBase::GetVoidValue(const char *name, const std::type_inf
if (strcmp(name, "ValueNames") == 0)
{
ThrowIfTypeMismatch(name, typeid(std::string), valueType);
- GetParent().GetVoidValue(name, valueType, pValue);
+ if (m_next.get())
+ m_next->GetVoidValue(name, valueType, pValue);
(*reinterpret_cast<std::string *>(pValue) += m_name) += ";";
return true;
}
@@ -33,8 +34,15 @@ bool AlgorithmParametersBase::GetVoidValue(const char *name, const std::type_inf
m_used = true;
return true;
}
+ else if (m_next.get())
+ return m_next->GetVoidValue(name, valueType, pValue);
else
- return GetParent().GetVoidValue(name, valueType, pValue);
+ return false;
+}
+
+bool AlgorithmParameters::GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const
+{
+ return m_ptr->GetVoidValue(name, valueType, pValue);
}
NAMESPACE_END