Fixed size estimation for copyFrom/To vector in vx_matrix and vx_convolution wrappers

This commit is contained in:
Vitaly Tuzov 2017-04-13 17:45:42 +03:00
parent fd93ae08b6
commit d873fe66ab

View File

@ -2508,10 +2508,10 @@ public:
{
if (!areTypesCompatible(TypeToEnum<T>::value, dataType()))
throw WrapperError(std::string(__func__) + "(): destination type is wrong");
if (data.size() != size())
if (data.size()*sizeof(T) != size())
{
if (data.size() == 0)
data.resize(size());
data.resize(size()/sizeof(T));
else
throw WrapperError(std::string(__func__) + "(): destination size is wrong");
}
@ -2522,7 +2522,7 @@ public:
{
if (!areTypesCompatible(TypeToEnum<T>::value, dataType()))
throw WrapperError(std::string(__func__) + "(): source type is wrong");
if (data.size() != size()) throw WrapperError(std::string(__func__) + "(): source size is wrong");
if (data.size()*sizeof(T) != size()) throw WrapperError(std::string(__func__) + "(): source size is wrong");
copyFrom(&data[0]);
}
@ -2670,10 +2670,10 @@ public:
{
if (!areTypesCompatible(TypeToEnum<T>::value, dataType()))
throw WrapperError(std::string(__func__) + "(): destination type is wrong");
if (data.size() != size())
if (data.size()*sizeof(T) != size())
{
if (data.size() == 0)
data.resize(size());
data.resize(size()/sizeof(T));
else
throw WrapperError(std::string(__func__) + "(): destination size is wrong");
}
@ -2684,7 +2684,7 @@ public:
{
if (!areTypesCompatible(TypeToEnum<T>::value, dataType()))
throw WrapperError(std::string(__func__) + "(): source type is wrong");
if (data.size() != size()) throw WrapperError(std::string(__func__) + "(): source size is wrong");
if (data.size()*sizeof(T) != size()) throw WrapperError(std::string(__func__) + "(): source size is wrong");
copyFrom(&data[0]);
}