0024023: Revamp the OCCT Handle -- plugin
[occt.git] / src / XmlLDrivers / XmlLDrivers.cxx
index d951f27..341ee13 100644 (file)
@@ -36,7 +36,7 @@ static Standard_GUID XmlLRetrievalDriver("13a56822-8269-11d5-aab2-0050044b1af1")
 //function : Factory
 //purpose  : PLUGIN FACTORY
 //=======================================================================
-Handle(Standard_Transient) XmlLDrivers::Factory(const Standard_GUID& theGUID)
+const Handle(Standard_Transient)& XmlLDrivers::Factory(const Standard_GUID& theGUID)
 {
   if (theGUID == XmlLStorageDriver)
   {
@@ -60,7 +60,8 @@ Handle(Standard_Transient) XmlLDrivers::Factory(const Standard_GUID& theGUID)
   }
  
   Standard_Failure::Raise ("XmlLDrivers : unknown GUID");
-  return NULL;
+  static Handle(Standard_Transient) aNullHandle;
+  return aNullHandle;
 }
 
 #define SLENGTH 80
@@ -121,9 +122,5 @@ TCollection_AsciiString XmlLDrivers::StorageVersion()
   return aVersionStr;
 }
 
-#ifdef _MSC_VER
-#pragma warning(disable:4190) /* disable warning on C++ type returned by C function; should be OK for C++ usage */
-#endif
-
 // Declare entry point PLUGINFACTORY
 PLUGIN(XmlLDrivers)