From 57804494ef75a47fcc0a18ab07c3df948afbcd72 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Fri, 24 May 2013 18:26:47 -0400 Subject: [PATCH] Misc fixes and error checking fix argument type for getScalarType mark getFieldName as const Argument checking for Field construction --- pvDataApp/factory/FieldCreateFactory.cpp | 18 ++++++++++++++---- pvDataApp/factory/TypeFunc.cpp | 2 +- pvDataApp/pv/pvIntrospect.h | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/pvDataApp/factory/FieldCreateFactory.cpp b/pvDataApp/factory/FieldCreateFactory.cpp index 7024cd7..e8444ba 100644 --- a/pvDataApp/factory/FieldCreateFactory.cpp +++ b/pvDataApp/factory/FieldCreateFactory.cpp @@ -66,7 +66,11 @@ struct StructureArrayHashFunction { Scalar::Scalar(ScalarType scalarType) - : Field(scalar),scalarType(scalarType){} + : Field(scalar),scalarType(scalarType) +{ + if(scalarTypepvString) + throw std::invalid_argument("Can't construct Scalar from invalid ScalarType"); +} Scalar::~Scalar(){} @@ -166,7 +170,11 @@ static StructureConstPtr deserializeStructureField(const FieldCreate* fieldCreat } ScalarArray::ScalarArray(ScalarType elementType) -: Field(scalarArray),elementType(elementType){} +: Field(scalarArray),elementType(elementType) +{ + if(elementTypepvString) + throw std::invalid_argument("Can't construct ScalarArray from invalid ScalarType"); +} ScalarArray::~ScalarArray() {} @@ -275,10 +283,12 @@ Structure::Structure ( } size_t number = fields.size(); for(size_t i=0; i