From 4207a46f07d70cbba7de5124445be28235ebd0f0 Mon Sep 17 00:00:00 2001 From: Mark Pictor Date: Sun, 9 Aug 2015 23:30:13 -0400 Subject: [PATCH] fix MSVC link error for NilSTEPentity --- src/cldai/sdaiApplication_instance_set.cc | 2 ++ src/cllazyfile/lazyInstMgr.cc | 4 +++- src/cllazyfile/sectionReader.cc | 3 +-- src/clstepcore/sdaiApplication_instance.cc | 7 +++++++ src/clstepcore/sdaiApplication_instance.h | 1 + 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/cldai/sdaiApplication_instance_set.cc b/src/cldai/sdaiApplication_instance_set.cc index c50fdc0e..30a9103f 100644 --- a/src/cldai/sdaiApplication_instance_set.cc +++ b/src/cldai/sdaiApplication_instance_set.cc @@ -31,6 +31,8 @@ #include #include "sc_memmgr.h" +#include "sdaiApplication_instance.h" + // to help ObjectCenter #ifndef HAVE_MEMMOVE extern "C" diff --git a/src/cllazyfile/lazyInstMgr.cc b/src/cllazyfile/lazyInstMgr.cc index 2ad57c04..7ce253ee 100644 --- a/src/cllazyfile/lazyInstMgr.cc +++ b/src/cllazyfile/lazyInstMgr.cc @@ -6,6 +6,8 @@ #include "instMgrHelper.h" #include "lazyRefs.h" +#include "sdaiApplication_instance.h" + lazyInstMgr::lazyInstMgr() { _headerRegistry = new Registry( HeaderSchemaInit ); _instanceTypes = new instanceTypes_t( 255 ); //NOTE arbitrary max of 255 chars for a type name @@ -137,7 +139,7 @@ SDAI_Application_instance * lazyInstMgr::loadInstance( instanceID id, bool reSee std::cerr << "Instance #" << id << " exists in multiple sections. This is not yet supported." << std::endl; break; } - if( ( inst ) && ( inst != & NilSTEPentity ) ) { + if( !isNilSTEPentity( inst ) ) { _instancesLoaded.insert( id, inst ); _loadedInstanceCount++; lazyRefs lr( this, inst ); diff --git a/src/cllazyfile/sectionReader.cc b/src/cllazyfile/sectionReader.cc index 8de914de..bd3d9c23 100644 --- a/src/cllazyfile/sectionReader.cc +++ b/src/cllazyfile/sectionReader.cc @@ -302,8 +302,7 @@ SDAI_Application_instance * sectionReader::getRealInstance( const Registry * reg inst = reg->ObjCreate( tName, sName ); break; } - - if( inst != & NilSTEPentity ) { + if( !isNilSTEPentity( inst ) ) { if( !comment.empty() ) { inst->AddP21Comment( comment ); } diff --git a/src/clstepcore/sdaiApplication_instance.cc b/src/clstepcore/sdaiApplication_instance.cc index a3b61b79..d3b3c9d7 100644 --- a/src/clstepcore/sdaiApplication_instance.cc +++ b/src/clstepcore/sdaiApplication_instance.cc @@ -24,6 +24,13 @@ SDAI_Application_instance NilSTEPentity; +bool isNilSTEPentity( const SDAI_Application_instance * ai ) { + if( ai && ai == &NilSTEPentity ) { + return true; + } + return false; +} + /**************************************************************//** ** \file sdaiApplication_instance.cc Functions for manipulating entities ** diff --git a/src/clstepcore/sdaiApplication_instance.h b/src/clstepcore/sdaiApplication_instance.h index e451f97b..f314c764 100644 --- a/src/clstepcore/sdaiApplication_instance.h +++ b/src/clstepcore/sdaiApplication_instance.h @@ -196,5 +196,6 @@ class SC_CORE_EXPORT SDAI_Application_instance : public SDAI_DAObject_SDAI { // current style of CORBA handles for Part 23 - NOTE - used for more than CORBA typedef SDAI_Application_instance * SDAI_Application_instance_ptr; typedef SDAI_Application_instance_ptr SDAI_Application_instance_var; +SC_CORE_EXPORT bool isNilSTEPentity( const SDAI_Application_instance * ai ); #endif //STEPENTITY_H