aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Descriptors.cpp
diff options
context:
space:
mode:
authorsurmeh01 <surabhi.mehta@arm.com>2018-05-18 16:31:43 +0100
committertelsoa01 <telmo.soares@arm.com>2018-05-23 13:09:07 +0100
commit3537c2ca7ebf31c1673b9ec2bb0c17b0406bbae0 (patch)
tree5950603ad78ec3fe56fb31ddc7f4d52a19f5bc60 /src/armnn/Descriptors.cpp
parentbceff2fb3fc68bb0aa88b886900c34b77340c826 (diff)
downloadarmnn-3537c2ca7ebf31c1673b9ec2bb0c17b0406bbae0.tar.gz
Release 18.05
Diffstat (limited to 'src/armnn/Descriptors.cpp')
-rw-r--r--src/armnn/Descriptors.cpp37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/armnn/Descriptors.cpp b/src/armnn/Descriptors.cpp
index 0b11b44260..be04294e85 100644
--- a/src/armnn/Descriptors.cpp
+++ b/src/armnn/Descriptors.cpp
@@ -177,22 +177,30 @@ ViewsDescriptor::ViewsDescriptor()
ViewsDescriptor::ViewsDescriptor(uint32_t numViews, uint32_t numDimensions /*= 4*/)
: m_Origins(numViews, numDimensions)
- , m_ViewSizes(numViews && numDimensions > 0 ? new uint32_t *[numViews]() : nullptr)
+ , m_ViewSizes(numViews > 0 && numDimensions > 0 ?
+ new uint32_t *[numViews]() : nullptr)
{
- for (uint32_t i = 0; GetNumDimensions() > 0 && i < GetNumViews(); ++i)
+ if (m_ViewSizes)
{
- m_ViewSizes[i] = new uint32_t[GetNumDimensions()]();
+ for (uint32_t i = 0; GetNumDimensions() > 0 && i < GetNumViews(); ++i)
+ {
+ m_ViewSizes[i] = new uint32_t[GetNumDimensions()]();
+ }
}
}
ViewsDescriptor::ViewsDescriptor(const ViewsDescriptor& other)
: m_Origins(other.m_Origins)
- , m_ViewSizes(other.GetNumViews() && other.GetNumDimensions() > 0 ? new uint32_t *[other.GetNumViews()]() : nullptr)
+ , m_ViewSizes(other.GetNumViews() > 0 && other.GetNumDimensions() > 0 ?
+ new uint32_t *[other.GetNumViews()]() : nullptr)
{
- for (uint32_t i = 0; GetNumDimensions() > 0 && i < GetNumViews(); ++i)
+ if (m_ViewSizes)
{
- m_ViewSizes[i] = new uint32_t[GetNumDimensions()]();
- memcpy(m_ViewSizes[i], other.m_ViewSizes[i], GetNumDimensions() * sizeof(uint32_t));
+ for (uint32_t i = 0; GetNumDimensions() > 0 && i < GetNumViews(); ++i)
+ {
+ m_ViewSizes[i] = new uint32_t[GetNumDimensions()]();
+ memcpy(m_ViewSizes[i], other.m_ViewSizes[i], GetNumDimensions() * sizeof(uint32_t));
+ }
}
}
@@ -204,11 +212,14 @@ ViewsDescriptor::ViewsDescriptor(ViewsDescriptor&& other)
ViewsDescriptor::~ViewsDescriptor()
{
- for (uint32_t i = 0; GetNumDimensions() > 0 && i < GetNumViews(); ++i)
+ if (m_ViewSizes)
{
- delete[] m_ViewSizes[i];
+ for (uint32_t i = 0; GetNumDimensions() > 0 && i < GetNumViews(); ++i)
+ {
+ delete[] m_ViewSizes[i];
+ }
+ delete[] m_ViewSizes;
}
- delete[] m_ViewSizes;
}
ViewsDescriptor& ViewsDescriptor::operator=(ViewsDescriptor rhs)
@@ -239,6 +250,12 @@ Status ViewsDescriptor::SetViewOriginCoord(uint32_t view, uint32_t coord, uint32
Status ViewsDescriptor::SetViewSize(uint32_t view, uint32_t coord, uint32_t value)
{
+ if (!m_ViewSizes)
+ {
+ BOOST_LOG_TRIVIAL(error) << "ViewsDescriptor::SetViewSize: invalid view sizes";
+ return Status::Failure;
+ }
+
if (view >= GetNumViews())
{
BOOST_LOG_TRIVIAL(error) << "ViewsDescriptor::SetViewSize: view argument:" << view <<