]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
MPV: fix for bug 13534
authormpv <mpv@opencascade.com>
Mon, 16 Oct 2006 13:22:12 +0000 (13:22 +0000)
committermpv <mpv@opencascade.com>
Mon, 16 Oct 2006 13:22:12 +0000 (13:22 +0000)
Result of GetLocalImp methods is pointer. For 64-bits platforms it is 8 bytes. Use CORBA::LongLong to send 8 bytes.

13 files changed:
idl/SALOMEDS.idl
src/SALOMEDS/SALOMEDS_GenericAttribute.cxx
src/SALOMEDS/SALOMEDS_GenericAttribute_i.cxx
src/SALOMEDS/SALOMEDS_GenericAttribute_i.hxx
src/SALOMEDS/SALOMEDS_SObject.cxx
src/SALOMEDS/SALOMEDS_SObject_i.cxx
src/SALOMEDS/SALOMEDS_SObject_i.hxx
src/SALOMEDS/SALOMEDS_Study.cxx
src/SALOMEDS/SALOMEDS_StudyManager.cxx
src/SALOMEDS/SALOMEDS_StudyManager_i.cxx
src/SALOMEDS/SALOMEDS_StudyManager_i.hxx
src/SALOMEDS/SALOMEDS_Study_i.cxx
src/SALOMEDS/SALOMEDS_Study_i.hxx

index c82d3f331de5d753c857abb91f2bd2a82e1fd8fe..8920ec25bbfb044d8f5ed272b47a3da5807525b8 100644 (file)
@@ -400,7 +400,7 @@ during each working session.
    \param thePID is a process ID of the caller
    \param isLocal is set True if the Study is launched locally with the caller
 */
-    long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
+    long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
 
 
 /*!
@@ -842,7 +842,7 @@ Gets the list of open studies
    \param thePID is a process ID of the caller
    \param isLocal is set True if the StudyManager is launched locally with the caller
 */
-    long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal); 
+    long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal); 
 
 
   };
@@ -959,7 +959,7 @@ Gets the list of open studies
    \param thePID is a process ID of the caller
    \param isLocal is set True if the SObject is launched locally with the caller
 */
-    long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
+    long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
   };
 
 
@@ -996,7 +996,7 @@ Gets the list of open studies
    \param thePID is a process ID of the caller
    \param isLocal is set True if the GenericAttribute is launched locally with the caller
 */
-    long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
+    long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
   };
 
 
index f7d837568c0208d633934ca4790eb211aa88d6e2..dbbe153e0cdc307c49bc0047e2f578bf6cf4092d 100644 (file)
@@ -58,7 +58,7 @@ SALOMEDS_GenericAttribute::SALOMEDS_GenericAttribute(SALOMEDS::GenericAttribute_
   long pid =  (long)getpid();
 #endif  
 
-  long addr = theGA->GetLocalImpl(GetHostname().c_str(), pid, _isLocal);
+  CORBA::LongLong addr = theGA->GetLocalImpl(GetHostname().c_str(), pid, _isLocal);
   if(_isLocal) {
     _local_impl = ((SALOMEDSImpl_GenericAttribute*)(addr));
     _corba_impl = SALOMEDS::GenericAttribute::_nil();
index 8ab64d6ab9f2185195aeab91cb1988ba3b7aa1b6..e51e4609f103f610051717f8dc4c153dcb6cd073 100644 (file)
@@ -131,7 +131,7 @@ SALOMEDS::GenericAttribute_ptr SALOMEDS_GenericAttribute_i::CreateAttribute
 //===========================================================================
 //   PRIVATE FUNCTIONS
 //===========================================================================
-CORBA::Long SALOMEDS_GenericAttribute_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal)
+CORBA::LongLong SALOMEDS_GenericAttribute_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal)
 {
 #ifdef WIN32
   long pid = (long)_getpid();
@@ -140,5 +140,5 @@ CORBA::Long SALOMEDS_GenericAttribute_i::GetLocalImpl(const char* theHostname, C
 #endif
   isLocal = (strcmp(theHostname, GetHostname().c_str()) == 0 && pid == thePID)?1:0;
   TDF_Attribute* local_impl = _impl.operator->();
-  return ((long)local_impl);
+  return ((CORBA::LongLong)local_impl);
 }
index 6835caa3a887e5e0321f4a17213b621988b05954..32176a41a2965ac42fc09fb2d5d11e44171ce896 100644 (file)
@@ -57,7 +57,7 @@ public:
 
   static SALOMEDS::GenericAttribute_ptr CreateAttribute(const Handle(TDF_Attribute)& theAttr, CORBA::ORB_ptr theOrb);  
 
-  virtual CORBA::Long GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal);
+  virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal);
 };
 
 #endif
index 1e551766d0d36aa56d36dc25dc6beda9b9315a37..5db300efd85e8bfbb8e5df58ca51c409bfedabc6 100644 (file)
@@ -62,11 +62,7 @@ SALOMEDS_SObject::SALOMEDS_SObject(SALOMEDS::SObject_ptr theSObject)
   long pid =  (long)getpid();
 #endif  
 
-#if SIZEOF_LONG == 4
-  long addr = 
-#else
-  int addr =
-#endif  
+  CORBA::LongLong addr =  // mpv: fix for IPAL13534: for 64-bit platforms use 8-bytes long for pointer storage
   theSObject->GetLocalImpl(GetHostname().c_str(), pid, _isLocal);
 
   if(_isLocal) {
index f3d1602ed927ece38b47142a7952d278cd41d1cf..59b0e30a0125467388ab299034b53b91b2601a5d 100644 (file)
@@ -318,7 +318,7 @@ char* SALOMEDS_SObject_i::GetIOR()
 //===========================================================================
 //   PRIVATE FUNCTIONS
 //===========================================================================
-CORBA::Long SALOMEDS_SObject_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal)
+CORBA::LongLong SALOMEDS_SObject_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal)
 {
 #ifdef WIN32
   long pid = (long)_getpid();
@@ -327,5 +327,5 @@ CORBA::Long SALOMEDS_SObject_i::GetLocalImpl(const char* theHostname, CORBA::Lon
 #endif
   isLocal = (strcmp(theHostname, GetHostname().c_str()) == 0 && pid == thePID)?1:0;
   SALOMEDSImpl_SObject* local_impl = _impl.operator->();
-  return ((long)local_impl);
+  return ((CORBA::LongLong)local_impl);
 }
index 29e434bf6c9f42cd9ccd25f675dfc515e172b9b3..fe16e357f3f0872ca24952dd8f42a5df120d42c3 100644 (file)
@@ -76,7 +76,7 @@ public:
   virtual CORBA::Short Tag();
   virtual CORBA::Short Depth();
 
-  virtual CORBA::Long GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal);
+  virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal);
 };
 
 #endif
index 01a0ca2d1fce2025440f2ea69ebb9eb244e0c039..e6e306bea3c3c1bac2467775ef659a1660dd34a3 100644 (file)
@@ -83,11 +83,7 @@ SALOMEDS_Study::SALOMEDS_Study(SALOMEDS::Study_ptr theStudy)
   long pid =  (long)getpid();
 #endif  
 
-#if SIZEOF_LONG == 4
-  long addr = 
-#else
-  int addr =
-#endif
+  CORBA::LongLong addr =  // mpv: fix for IPAL13534: for 64 bit platform use 8-bytes long for pointer storage
     theStudy->GetLocalImpl(GetHostname().c_str(), pid, _isLocal);
 
   if(_isLocal) {
index cae5cfba5520cfcbf241296c642c3d74c5f9fc95..3351231651f9911dd252e9619b5f1b4495b9a6f5 100644 (file)
@@ -61,7 +61,7 @@ SALOMEDS_StudyManager::SALOMEDS_StudyManager(SALOMEDS::StudyManager_ptr theManag
   long pid =  (long)getpid();
 #endif  
 
-  long addr = theManager->GetLocalImpl(GetHostname().c_str(), pid, _isLocal);
+  CORBA::LongLong addr = theManager->GetLocalImpl(GetHostname().c_str(), pid, _isLocal);
   if(_isLocal) {
     _local_impl = ((SALOMEDSImpl_StudyManager*)(addr));
     _corba_impl = SALOMEDS::StudyManager::_duplicate(theManager);
@@ -89,7 +89,7 @@ SALOMEDS_StudyManager::SALOMEDS_StudyManager()
   long pid =  (long)getpid();
 #endif  
 
-  long addr = theManager->GetLocalImpl(GetHostname().c_str(), pid, _isLocal);
+  CORBA::LongLong addr = theManager->GetLocalImpl(GetHostname().c_str(), pid, _isLocal);
   if(_isLocal) {
     _local_impl = ((SALOMEDSImpl_StudyManager*)(addr));
     _corba_impl = SALOMEDS::StudyManager::_duplicate(theManager);
index 617f7c19426eb3c05fbe546d33214d8eb07d66fe..b13fd9bab186dcffe54edd5099c7cead1e0d4259 100644 (file)
@@ -456,7 +456,7 @@ PortableServer::POA_ptr SALOMEDS_StudyManager_i::GetPOA(const SALOMEDS::Study_pt
 //===========================================================================
 //   PRIVATE FUNCTIONS
 //===========================================================================
-CORBA::Long SALOMEDS_StudyManager_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal)
+CORBA::LongLong SALOMEDS_StudyManager_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal)
 {
 #ifdef WIN32
   long pid = (long)_getpid();
@@ -465,7 +465,7 @@ CORBA::Long SALOMEDS_StudyManager_i::GetLocalImpl(const char* theHostname, CORBA
 #endif
   isLocal = (strcmp(theHostname, GetHostname().c_str()) == 0 && pid == thePID)?1:0;
   SALOMEDSImpl_StudyManager* aManager = _impl.operator->();
-  return ((long)aManager);
+  return ((CORBA::LongLong)aManager);
 }
 
 //===========================================================================
index 3f3c3d831afdd0297233fbdc40e3f9bf02a92c01..31c486f7b29e7b49646d4dfbe7233ee4d56f5de5 100644 (file)
@@ -142,7 +142,7 @@ public:
   
   void ping(){};
 
-  virtual CORBA::Long GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal);
+  virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal);
 
   static PortableServer::POA_ptr GetPOA(const SALOMEDS::Study_ptr theStudy);
 };
index dcf58e808cb24ef6be687739b31091d850f4c626..b0874efbd734e432b5e2ef7a37c09b2f48402cc2 100644 (file)
@@ -883,7 +883,7 @@ char* SALOMEDS_Study_i::GetDefaultScript(const char* theModuleName, const char*
 //===========================================================================
 //   PRIVATE FUNCTIONS
 //===========================================================================
-CORBA::Long SALOMEDS_Study_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal)
+CORBA::LongLong SALOMEDS_Study_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal)
 {
 #ifdef WIN32
   long pid = (long)_getpid();
@@ -892,5 +892,5 @@ CORBA::Long SALOMEDS_Study_i::GetLocalImpl(const char* theHostname, CORBA::Long
 #endif  
   isLocal = (strcmp(theHostname, GetHostname().c_str()) == 0 && pid == thePID)?1:0;
   SALOMEDSImpl_Study* local_impl = _impl.operator->();
-  return ((long)local_impl);
+  return ((CORBA::LongLong)local_impl);
 }
index dc617fe12b473f1636dcefd0b79335944c658b1c..d1e6fae52c3bc3178a6d7a38c5699d30dfe080c8 100644 (file)
@@ -298,6 +298,6 @@ public:
 
   virtual Handle(SALOMEDSImpl_Study) GetImpl() { return _impl; }
 
-  virtual CORBA::Long GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal);
+  virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal);
 };
 #endif