From eac6b3e8cca36264f6a3ba3bafb365ef58fb1783 Mon Sep 17 00:00:00 2001 From: Dwayne Boone Date: Fri, 4 Apr 2008 09:55:15 -0230 Subject: Port to CodeGear C++Builder 2007 --- cpp/src/Freeze/BackgroundSaveEvictorI.cpp | 12 +- cpp/src/Freeze/EvictorI.h | 6 +- cpp/src/Freeze/Makefile.mak | 10 +- cpp/src/Freeze/ObjectStore.h | 7 + cpp/src/Freeze/TransactionalEvictorI.cpp | 5 +- cpp/src/FreezeScript/Makefile.mak | 18 +- cpp/src/Glacier2/Makefile.mak | 16 +- cpp/src/Glacier2/SessionRouterI.cpp | 270 ++++++++++++++-------------- cpp/src/Ice/ConnectionRequestHandler.cpp | 14 +- cpp/src/Ice/EventHandler.cpp | 2 +- cpp/src/Ice/LocatorInfo.cpp | 132 +++++++------- cpp/src/Ice/Makefile.mak | 9 +- cpp/src/Ice/Network.cpp | 8 + cpp/src/Ice/SelectorThread.cpp | 2 +- cpp/src/Ice/ServantManager.cpp | 2 +- cpp/src/Ice/ThreadPool.cpp | 2 +- cpp/src/Ice/TraceLevels.cpp | 2 +- cpp/src/IceBox/Makefile.mak | 22 ++- cpp/src/IceGrid/Makefile.mak | 25 ++- cpp/src/IceGrid/NodeServerAdminRouter.cpp | 1 + cpp/src/IceGrid/SessionServantManager.cpp | 4 + cpp/src/IceGridLib/Makefile.mak | 10 +- cpp/src/IcePatch2/Makefile.mak | 30 +++- cpp/src/IceSSL/Makefile.mak | 12 +- cpp/src/IceStorm/Makefile.mak | 22 ++- cpp/src/IceStorm/Observers.cpp | 12 +- cpp/src/IceStorm/Service.cpp | 1 + cpp/src/IceStorm/TopicI.cpp | 1 - cpp/src/IceStorm/TopicManagerI.cpp | 1 + cpp/src/IceStorm/TransientTopicManagerI.cpp | 1 + cpp/src/IceUtil/Makefile.mak | 10 +- cpp/src/IceXML/Makefile.mak | 10 +- cpp/src/Slice/Makefile.mak | 10 +- cpp/src/Slice/Util.cpp | 4 + cpp/src/iceserviceinstall/Install.cpp | 2 +- cpp/src/iceserviceinstall/Makefile.mak | 10 +- cpp/src/slice2cpp/Makefile.mak | 12 +- cpp/src/slice2cppe/Makefile.mak | 12 +- cpp/src/slice2cs/Gen.cpp | 12 +- cpp/src/slice2cs/Makefile.mak | 12 +- cpp/src/slice2docbook/Makefile.mak | 12 +- cpp/src/slice2freeze/Makefile.mak | 12 +- cpp/src/slice2freezej/Makefile.mak | 12 +- cpp/src/slice2html/Makefile.mak | 12 +- cpp/src/slice2java/Makefile.mak | 12 +- cpp/src/slice2javae/Makefile.mak | 12 +- cpp/src/slice2py/Makefile.mak | 12 +- cpp/src/slice2rb/Makefile.mak | 12 +- cpp/src/slice2sl/Gen.cpp | 12 +- cpp/src/slice2sl/Makefile.mak | 12 +- 50 files changed, 559 insertions(+), 314 deletions(-) (limited to 'cpp/src') diff --git a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp index 49ac2a48b05..b4b318b2ce6 100644 --- a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp +++ b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp @@ -13,6 +13,10 @@ #include #include +#include + + + #include using namespace std; @@ -1399,12 +1403,12 @@ Freeze::BackgroundSaveEvictorElement::~BackgroundSaveEvictorElement() { } +// COMPILERFIX: Required to build with C++ Builder 2007 +typedef ObjectStore::Position BackgroundSaveEvictorElementPosition; + void -Freeze::BackgroundSaveEvictorElement::init(ObjectStore::Position p) +Freeze::BackgroundSaveEvictorElement::init(BackgroundSaveEvictorElementPosition p) { stale = false; cachePosition = p; } - - - diff --git a/cpp/src/Freeze/EvictorI.h b/cpp/src/Freeze/EvictorI.h index c25f88feed3..9eff024a02f 100644 --- a/cpp/src/Freeze/EvictorI.h +++ b/cpp/src/Freeze/EvictorI.h @@ -220,7 +220,7 @@ protected: } ObjectStore* store = new ObjectStore(facet, facetType,_createDb, this, storeIndices, populateEmptyIndices); -#if defined(_MSC_VER) && (_MSC_VER < 1300) +#if defined(__BCPLUSPLUS__) || (defined(_MSC_VER) && (_MSC_VER < 1300)) _storeMap.insert(StoreMap::value_type(facet, store)); #else _storeMap.insert(typename StoreMap::value_type(facet, store)); @@ -235,7 +235,7 @@ protected: { facet = ""; } -#if defined(_MSC_VER) && (_MSC_VER < 1300) +#if defined(__BCPLUSPLUS__) || (defined(_MSC_VER) && (_MSC_VER < 1300)) std::pair ir = _storeMap.insert(StoreMap::value_type(facet, 0)); #else @@ -278,7 +278,7 @@ protected: } os = new ObjectStore(facet, facetType, true, this); -#if defined(_MSC_VER) && (_MSC_VER < 1300) +#if defined(__BCPLUSPLUS__) || (defined(_MSC_VER) && (_MSC_VER < 1300)) _storeMap.insert(StoreMap::value_type(facet, os)); #else _storeMap.insert(typename StoreMap::value_type(facet, os)); diff --git a/cpp/src/Freeze/Makefile.mak b/cpp/src/Freeze/Makefile.mak index 014163eccf6..fb1c80d2b1b 100644 --- a/cpp/src/Freeze/Makefile.mak +++ b/cpp/src/Freeze/Makefile.mak @@ -59,10 +59,16 @@ LINKWITH = $(LIBS) $(DB_LIBS) PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Freeze.res +!else +RES_FILE = Freeze.res +!endif + $(LIBNAME): $(DLLNAME) $(DLLNAME): $(OBJS) Freeze.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) Freeze.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @@ -111,7 +117,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/Freeze/ObjectStore.h b/cpp/src/Freeze/ObjectStore.h index d24a7c487cd..1f9f389035a 100644 --- a/cpp/src/Freeze/ObjectStore.h +++ b/cpp/src/Freeze/ObjectStore.h @@ -94,7 +94,14 @@ class ObjectStore : public ObjectStoreBase, public IceUtil::Cache Cache; diff --git a/cpp/src/Freeze/TransactionalEvictorI.cpp b/cpp/src/Freeze/TransactionalEvictorI.cpp index db6ee0f8421..e2798be89da 100644 --- a/cpp/src/Freeze/TransactionalEvictorI.cpp +++ b/cpp/src/Freeze/TransactionalEvictorI.cpp @@ -827,8 +827,11 @@ Freeze::TransactionalEvictorElement::~TransactionalEvictorElement() { } +// COMPILERFIX: Required to build with C++ Builder 2007 +typedef ObjectStore::Position TransactionalEvictorElementPosition; + void -Freeze::TransactionalEvictorElement::init(ObjectStore::Position p) +Freeze::TransactionalEvictorElement::init(TransactionalEvictorElementPosition p) { _stale = false; _cachePosition = p; diff --git a/cpp/src/FreezeScript/Makefile.mak b/cpp/src/FreezeScript/Makefile.mak index a3ead3e7fa4..127f1b822f8 100644 --- a/cpp/src/FreezeScript/Makefile.mak +++ b/cpp/src/FreezeScript/Makefile.mak @@ -47,15 +47,23 @@ TPDBFLAGS = /pdb:$(TRANSFORMDB:.exe=.pdb) DPDBFLAGS = /pdb:$(DUMPDB:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +TRES_FILE = ,, TransformDB.res +DRES_FILE = ,, DumpDB.res +!else +TRES_FILE = TransformDB.res +DRES_FILE = DumpDB.res +!endif + $(TRANSFORMDB): $(TRANSFORM_OBJS) $(COMMON_OBJS) TransformDB.res - $(LINK) $(LD_EXEFLAGS) $(TPDBFLAGS) $(TRANSFORM_OBJS) $(COMMON_OBJS) TransformDB.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)$(LINKWITH) + $(LINK) $(LD_EXEFLAGS) $(TPDBFLAGS) $(TRANSFORM_OBJS) $(COMMON_OBJS) $(SETARGV) $(PREOUT)$@ \ + $(PRELIBS)$(LINKWITH) $(TRES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest $(DUMPDB): $(DUMP_OBJS) $(COMMON_OBJS) DumpDB.res - $(LINK) $(LD_EXEFLAGS) $(DPDBFLAGS) $(DUMP_OBJS) $(COMMON_OBJS) DumpDB.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)$(LINKWITH) + $(LINK) $(LD_EXEFLAGS) $(DPDBFLAGS) $(DUMP_OBJS) $(COMMON_OBJS) $(SETARGV) $(PREOUT)$@ \ + $(PRELIBS)$(LINKWITH) $(DRES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -92,7 +100,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(TRANSFORMDB:.exe=.tds) $(install_bindir) diff --git a/cpp/src/Glacier2/Makefile.mak b/cpp/src/Glacier2/Makefile.mak index ef41b9387ef..29629cf3d66 100644 --- a/cpp/src/Glacier2/Makefile.mak +++ b/cpp/src/Glacier2/Makefile.mak @@ -55,7 +55,7 @@ SDIR = $(slicedir)\Glacier2 CPPFLAGS = -I.. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN LINKWITH = $(LIBS) $(OPENSSL_LIBS) glacier2$(LIBSUFFIX).lib icessl$(LIBSUFFIX).lib -!if "$(CPP_COMPILER)" != "BCC2006" +!if "$(CPP_COMPILER)" != "BCC2007" LINKWITH = $(LINKWITH) ws2_32.lib !endif @@ -70,19 +70,27 @@ PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) RPDBFLAGS = /pdb:$(ROUTER:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Glacier2.res +RRES_FILE = ,, Glacier2Router.res +!else +RES_FILE = Glacier2.res +RRES_FILE = Glacier2Router.res +!endif + SLICE2CPPFLAGS = --include-dir Glacier2 --dll-export GLACIER2_API $(SLICE2CPPFLAGS) $(LIBNAME): $(DLLNAME) $(DLLNAME): $(OBJS) Glacier2.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) Glacier2.res $(PREOUT)$@ $(PRELIBS)$(LIBS) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp) $(ROUTER): $(ROBJS) Glacier2Router.res - $(LINK) $(LD_EXEFLAGS) $(RPDBFLAGS) $(ROBJS) Glacier2Router.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) + $(LINK) $(LD_EXEFLAGS) $(RPDBFLAGS) $(ROBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RRES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -113,7 +121,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/Glacier2/SessionRouterI.cpp b/cpp/src/Glacier2/SessionRouterI.cpp index eca720d7e31..229a0a51a05 100644 --- a/cpp/src/Glacier2/SessionRouterI.cpp +++ b/cpp/src/Glacier2/SessionRouterI.cpp @@ -146,52 +146,52 @@ public: { } - virtual void - authorize() + class CheckPermissionsCB : public AMI_PermissionsVerifier_checkPermissions { - assert(_sessionRouter->_verifier); + public: - class CheckPermissionsCB : public AMI_PermissionsVerifier_checkPermissions + CheckPermissionsCB(const UserPasswordCreateSessionPtr& session, bool hasSessionManager) : + _session(session), + _hasSessionManager(hasSessionManager) { - public: + } - CheckPermissionsCB(const UserPasswordCreateSessionPtr& session, bool hasSessionManager) : - _session(session), - _hasSessionManager(hasSessionManager) + virtual void + ice_response(bool ok, const string& reason) + { + if(ok) { + _session->authorized(_hasSessionManager); } - - virtual void - ice_response(bool ok, const string& reason) + else { - if(ok) - { - _session->authorized(_hasSessionManager); - } - else - { - _session->exception(PermissionDeniedException(reason.empty() ? "permission denied" : reason)); - } + _session->exception(PermissionDeniedException(reason.empty() ? string("permission denied") : reason)); } + } - virtual void - ice_exception(const Ice::Exception& ex) + virtual void + ice_exception(const Ice::Exception& ex) + { + if(dynamic_cast(&ex)) { - if(dynamic_cast(&ex)) - { - _session->authorizeCollocated(); - } - else - { - _session->unexpectedAuthorizeException(ex); - } + _session->authorizeCollocated(); } + else + { + _session->unexpectedAuthorizeException(ex); + } + } - private: + private: - const UserPasswordCreateSessionPtr _session; - const bool _hasSessionManager; - }; + const UserPasswordCreateSessionPtr _session; + const bool _hasSessionManager; + }; + + virtual void + authorize() + { + assert(_sessionRouter->_verifier); AMI_PermissionsVerifier_checkPermissionsPtr cb = new CheckPermissionsCB(this, _sessionRouter->_sessionManager); _sessionRouter->_verifier->checkPermissions_async(cb, _user, _password, _current.ctx); @@ -209,7 +209,7 @@ public: } else { - exception(PermissionDeniedException(reason.empty() ? "permission denied" : reason)); + exception(PermissionDeniedException(reason.empty() ? string("permission denied") : reason)); } } catch(const Ice::Exception& ex) @@ -224,44 +224,45 @@ public: return FilterManager::create(_instance, _user, true); } - virtual void - createSession() + class CreateCB : public AMI_SessionManager_create { - class CreateCB : public AMI_SessionManager_create + public: + + CreateCB(const CreateSessionPtr& session) : _session(session) { - public: - - CreateCB(const CreateSessionPtr& session) : _session(session) + } + + virtual void + ice_response(const SessionPrx& session) + { + _session->sessionCreated(session); + } + + virtual void + ice_exception(const Ice::Exception& ex) + { + try { + ex.ice_throw(); } - - virtual void - ice_response(const SessionPrx& session) + catch(const CannotCreateSessionException& ex) { - _session->sessionCreated(session); + _session->exception(ex); } - - virtual void - ice_exception(const Ice::Exception& ex) + catch(const Ice::Exception& ex) { - try - { - ex.ice_throw(); - } - catch(const CannotCreateSessionException& ex) - { - _session->exception(ex); - } - catch(const Ice::Exception& ex) - { - _session->unexpectedCreateSessionException(ex); - } + _session->unexpectedCreateSessionException(ex); } + } - private: - - const CreateSessionPtr _session; - }; + private: + + const CreateSessionPtr _session; + }; + + virtual void + createSession() + { _sessionRouter->_sessionManager->create_async(new CreateCB(this), _user, _control, _current.ctx); } @@ -296,52 +297,53 @@ public: { } - virtual void - authorize() + class AuthorizeCB : public AMI_SSLPermissionsVerifier_authorize { - assert(_sessionRouter->_verifier); + public: - class AuthorizeCB : public AMI_SSLPermissionsVerifier_authorize + AuthorizeCB(const SSLCreateSessionPtr& session, bool hasSessionManager) : + _session(session), + _hasSessionManager(hasSessionManager) { - public: + } - AuthorizeCB(const SSLCreateSessionPtr& session, bool hasSessionManager) : - _session(session), - _hasSessionManager(hasSessionManager) + virtual void + ice_response(bool ok, const string& reason) + { + if(ok) { + _session->authorized(_hasSessionManager); } - - virtual void - ice_response(bool ok, const string& reason) + else { - if(ok) - { - _session->authorized(_hasSessionManager); - } - else - { - _session->exception(PermissionDeniedException(reason.empty() ? "permission denied" : reason)); - } + _session->exception(PermissionDeniedException(reason.empty() ? string("permission denied") + : reason)); } + } - virtual void - ice_exception(const Ice::Exception& ex) + virtual void + ice_exception(const Ice::Exception& ex) + { + if(dynamic_cast(&ex)) { - if(dynamic_cast(&ex)) - { - _session->authorizeCollocated(); - } - else - { - _session->unexpectedAuthorizeException(ex); - } + _session->authorizeCollocated(); + } + else + { + _session->unexpectedAuthorizeException(ex); } + } - private: + private: - const SSLCreateSessionPtr _session; - const bool _hasSessionManager; - }; + const SSLCreateSessionPtr _session; + const bool _hasSessionManager; + }; + + virtual void + authorize() + { + assert(_sessionRouter->_verifier); AMI_SSLPermissionsVerifier_authorizePtr cb = new AuthorizeCB(this, _sessionRouter->_sessionManager); _sessionRouter->_sslVerifier->authorize_async(cb, _sslInfo, _current.ctx); @@ -359,7 +361,7 @@ public: } else { - exception(PermissionDeniedException(reason.empty() ? "permission denied" : reason)); + exception(PermissionDeniedException(reason.empty() ? string("permission denied") : reason)); } } catch(const Ice::Exception& ex) @@ -374,44 +376,45 @@ public: return FilterManager::create(_instance, _user, false); } - virtual void - createSession() + class CreateCB : public AMI_SSLSessionManager_create { - class CreateCB : public AMI_SSLSessionManager_create + public: + + CreateCB(const CreateSessionPtr& session) : _session(session) { - public: - - CreateCB(const CreateSessionPtr& session) : _session(session) + } + + virtual void + ice_response(const SessionPrx& session) + { + _session->sessionCreated(session); + } + + virtual void + ice_exception(const Ice::Exception& ex) + { + try { + ex.ice_throw(); } - - virtual void - ice_response(const SessionPrx& session) + catch(const CannotCreateSessionException& ex) { - _session->sessionCreated(session); + _session->exception(ex); } - - virtual void - ice_exception(const Ice::Exception& ex) + catch(const Ice::Exception& ex) { - try - { - ex.ice_throw(); - } - catch(const CannotCreateSessionException& ex) - { - _session->exception(ex); - } - catch(const Ice::Exception& ex) - { - _session->unexpectedCreateSessionException(ex); - } + _session->unexpectedCreateSessionException(ex); } + } - private: - - const CreateSessionPtr _session; - }; + private: + + const CreateSessionPtr _session; + }; + + virtual void + createSession() + { _sessionRouter->_sslSessionManager->create_async(new CreateCB(this), _sslInfo, _control, _current.ctx); } @@ -437,9 +440,12 @@ class DestroyCB : public AMI_Session_destroy { public: - DestroyCB(int traceLevel, const LoggerPtr& logger) : - _logger(traceLevel > 0 ? logger : LoggerPtr()) + DestroyCB(int traceLevel, const LoggerPtr& logger) { + if(traceLevel > 0) + { + _logger = logger; + } } virtual void @@ -545,8 +551,12 @@ Glacier2::CreateSession::sessionCreated(const SessionPrx& session) RouterIPtr router; try { - router = new RouterI(_instance, _current.con, _user, session, - _control ? _control->ice_getIdentity() : Ice::Identity(), _filterManager, _sslContext); + Ice::Identity ident; + if(_control) + { + ident = _control->ice_getIdentity(); + } + router = new RouterI(_instance, _current.con, _user, session, ident, _filterManager, _sslContext); } catch(const Ice::Exception& ex) { diff --git a/cpp/src/Ice/ConnectionRequestHandler.cpp b/cpp/src/Ice/ConnectionRequestHandler.cpp index d65e9fd449c..44d004fd2da 100644 --- a/cpp/src/Ice/ConnectionRequestHandler.cpp +++ b/cpp/src/Ice/ConnectionRequestHandler.cpp @@ -21,7 +21,19 @@ using namespace IceInternal; ConnectionRequestHandler::ConnectionRequestHandler(const ReferencePtr& reference, const Ice::ObjectPrx& proxy) : RequestHandler(reference) { - _connection = _reference->getConnection(_compress); +// COMPILERFIX: Without the catch/rethrow C++Builder 2007 can get access violations. +#ifdef __BCPLUSPLUS__ + try + { +#endif + _connection = _reference->getConnection(_compress); +#ifdef __BCPLUSPLUS__ + } + catch(const Ice::LocalException&) + { + throw; + } +#endif RouterInfoPtr ri = reference->getRouterInfo(); if(ri) { diff --git a/cpp/src/Ice/EventHandler.cpp b/cpp/src/Ice/EventHandler.cpp index 43b39ee7844..3f91732ac6e 100644 --- a/cpp/src/Ice/EventHandler.cpp +++ b/cpp/src/Ice/EventHandler.cpp @@ -15,7 +15,7 @@ using namespace Ice; using namespace IceInternal; IceUtil::Shared* IceInternal::upCast(EventHandler* p) { return p; } -IceUtil::Shared* IceInternal::upCast(ThreadPoolWorkItem* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(ThreadPoolWorkItem* p) { return p; } InstancePtr IceInternal::EventHandler::instance() const diff --git a/cpp/src/Ice/LocatorInfo.cpp b/cpp/src/Ice/LocatorInfo.cpp index 3e8b70df196..027261900aa 100644 --- a/cpp/src/Ice/LocatorInfo.cpp +++ b/cpp/src/Ice/LocatorInfo.cpp @@ -384,6 +384,73 @@ IceInternal::LocatorInfo::getEndpoints(const ReferencePtr& ref, int ttl, bool& c return endpoints; } +namespace IceInternal +{ + +class findAdapterByIdCallback : public AMI_Locator_findAdapterById +{ +public: + + virtual void + ice_response(const Ice::ObjectPrx& object) + { + vector endpoints; + if(object) + { + endpoints = object->__reference()->getEndpoints(); + if(!endpoints.empty()) + { + _table->addAdapterEndpoints(_reference->getAdapterId(), endpoints); + } + } + + if(_reference->getInstance()->traceLevels()->location >= 1) + { + _locatorInfo->getEndpointsTrace(_reference, endpoints, false); + } + + _callback->setEndpoints(endpoints, false); + } + + virtual void + ice_exception(const Ice::Exception& ex) + { + if(dynamic_cast(&ex)) + { + try + { + bool cached; + vector endpoints = _locatorInfo->getEndpoints(_reference, _ttl, cached); + _callback->setEndpoints(endpoints, cached); + } + catch(const Ice::LocalException& e) + { + _callback->setException(e); + } + } + else + { + _locatorInfo->getEndpointsException(_reference, ex, _callback); + } + } + + findAdapterByIdCallback(const LocatorInfoPtr& locatorInfo, const LocatorTablePtr& table, + const ReferencePtr& reference, int ttl, const LocatorInfo::GetEndpointsCallbackPtr& callback) : + _locatorInfo(locatorInfo), _table(table), _reference(reference), _ttl(ttl), _callback(callback) + { + } + +private: + + const LocatorInfoPtr _locatorInfo; + const LocatorTablePtr _table; + const ReferencePtr _reference; + const int _ttl; + const LocatorInfo::GetEndpointsCallbackPtr _callback; +}; + +}; + void IceInternal::LocatorInfo::getEndpoints(const ReferencePtr& ref, int ttl, const GetEndpointsCallbackPtr& callback) { @@ -403,73 +470,12 @@ IceInternal::LocatorInfo::getEndpoints(const ReferencePtr& ref, int ttl, const G out << "searching for adapter by id" << "\nadapter = " << adapterId; } - class Callback : public AMI_Locator_findAdapterById - { - public: - - virtual void - ice_response(const Ice::ObjectPrx& object) - { - vector endpoints; - if(object) - { - endpoints = object->__reference()->getEndpoints(); - if(!endpoints.empty()) - { - _table->addAdapterEndpoints(_reference->getAdapterId(), endpoints); - } - } - - if(_reference->getInstance()->traceLevels()->location >= 1) - { - _locatorInfo->getEndpointsTrace(_reference, endpoints, false); - } - - _callback->setEndpoints(endpoints, false); - } - - virtual void - ice_exception(const Ice::Exception& ex) - { - if(dynamic_cast(&ex)) - { - try - { - bool cached; - vector endpoints = _locatorInfo->getEndpoints(_reference, _ttl, cached); - _callback->setEndpoints(endpoints, cached); - } - catch(const Ice::LocalException& e) - { - _callback->setException(e); - } - } - else - { - _locatorInfo->getEndpointsException(_reference, ex, _callback); - } - } - - Callback(const LocatorInfoPtr& locatorInfo, const LocatorTablePtr& table, - const ReferencePtr& reference, int ttl, const GetEndpointsCallbackPtr& callback) : - _locatorInfo(locatorInfo), _table(table), _reference(reference), _ttl(ttl), _callback(callback) - { - } - - private: - - const LocatorInfoPtr _locatorInfo; - const LocatorTablePtr _table; - const ReferencePtr _reference; - const int _ttl; - const GetEndpointsCallbackPtr _callback; - }; - // // Search the adapter in the location service if we didn't // find it in the cache. // - _locator->findAdapterById_async(new Callback(this, _table, ref, ttl, callback), adapterId); + _locator->findAdapterById_async( + new IceInternal::findAdapterByIdCallback(this, _table, ref, ttl, callback), adapterId); return; } else diff --git a/cpp/src/Ice/Makefile.mak b/cpp/src/Ice/Makefile.mak index 5906305ad26..78d6c50a6bd 100644 --- a/cpp/src/Ice/Makefile.mak +++ b/cpp/src/Ice/Makefile.mak @@ -116,9 +116,12 @@ SDIR = $(slicedir)\Ice CPPFLAGS = -I.. $(CPPFLAGS) -DICE_API_EXPORTS -DFD_SETSIZE=1024 -DWIN32_LEAN_AND_MEAN SLICE2CPPFLAGS = --ice --include-dir Ice --dll-export ICE_API $(SLICE2CPPFLAGS) -LINKWITH = $(BASELIBS) $(BZIP2_LIBS) $(ICE_OS_LIBS) ws2_32.lib Iphlpapi.lib +LINKWITH = $(BASELIBS) $(BZIP2_LIBS) $(ICE_OS_LIBS) ws2_32.lib +!if "$(CPP_COMPILER)" != "BCC2007" +LINKWITH = $(LINKWITH) Iphlpapi.lib +!endif -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" RES_FILE = ,, Ice.res !else !if "$(GENERATE_PDB)" == "yes" @@ -194,7 +197,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp index 4ca5b0babbd..b2665c3e67b 100644 --- a/cpp/src/Ice/Network.cpp +++ b/cpp/src/Ice/Network.cpp @@ -403,6 +403,8 @@ getInterfaceIndex(const string& name) { int index = 0; #ifdef _WIN32 + +#ifndef __BCPLUSPLUS__ IP_ADAPTER_ADDRESSES addrs; ULONG buflen = 0; if(::GetAdaptersAddresses(AF_INET6, 0, 0, &addrs, &buflen) == ERROR_BUFFER_OVERFLOW) @@ -424,6 +426,8 @@ getInterfaceIndex(const string& name) } delete[] buf; } +#endif + #elif !defined(__hpux) index = if_nametoindex(name.c_str()); #endif @@ -436,6 +440,8 @@ getInterfaceAddress(const string& name) struct in_addr addr; addr.s_addr = INADDR_ANY; #ifdef _WIN32 + +#ifndef __BCPLUSPLUS__ IP_ADAPTER_ADDRESSES addrs; ULONG buflen = 0; if(::GetAdaptersAddresses(AF_INET, 0, 0, &addrs, &buflen) == ERROR_BUFFER_OVERFLOW) @@ -460,6 +466,8 @@ getInterfaceAddress(const string& name) } delete[] buf; } +#endif + #else ifreq if_address; strcpy(if_address.ifr_name, name.c_str()); diff --git a/cpp/src/Ice/SelectorThread.cpp b/cpp/src/Ice/SelectorThread.cpp index 8bde6307e5f..d7f2f679a96 100644 --- a/cpp/src/Ice/SelectorThread.cpp +++ b/cpp/src/Ice/SelectorThread.cpp @@ -17,7 +17,7 @@ using namespace std; using namespace Ice; using namespace IceInternal; -IceUtil::Shared* IceInternal::upCast(SelectorThread* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(SelectorThread* p) { return p; } IceInternal::SelectorThread::SelectorThread(const InstancePtr& instance) : _instance(instance), diff --git a/cpp/src/Ice/ServantManager.cpp b/cpp/src/Ice/ServantManager.cpp index a573c89bc7f..8dfcc0d2c66 100644 --- a/cpp/src/Ice/ServantManager.cpp +++ b/cpp/src/Ice/ServantManager.cpp @@ -18,7 +18,7 @@ using namespace std; using namespace Ice; using namespace IceInternal; -IceUtil::Shared* IceInternal::upCast(ServantManager* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(ServantManager* p) { return p; } void IceInternal::ServantManager::addServant(const ObjectPtr& object, const Identity& ident, const string& facet) diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp index 07d7b08492e..85c284e886f 100644 --- a/cpp/src/Ice/ThreadPool.cpp +++ b/cpp/src/Ice/ThreadPool.cpp @@ -23,7 +23,7 @@ using namespace std; using namespace Ice; using namespace IceInternal; -IceUtil::Shared* IceInternal::upCast(ThreadPool* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(ThreadPool* p) { return p; } IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& prefix, int timeout) : _instance(instance), diff --git a/cpp/src/Ice/TraceLevels.cpp b/cpp/src/Ice/TraceLevels.cpp index 028450d5df4..86135ee575c 100644 --- a/cpp/src/Ice/TraceLevels.cpp +++ b/cpp/src/Ice/TraceLevels.cpp @@ -14,7 +14,7 @@ using namespace std; using namespace Ice; using namespace IceInternal; -IceUtil::Shared* IceInternal::upCast(TraceLevels* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(TraceLevels* p) { return p; } IceInternal::TraceLevels::TraceLevels(const PropertiesPtr& properties) : network(0), diff --git a/cpp/src/IceBox/Makefile.mak b/cpp/src/IceBox/Makefile.mak index 082d5a5a042..7adf4abbfe1 100644 --- a/cpp/src/IceBox/Makefile.mak +++ b/cpp/src/IceBox/Makefile.mak @@ -60,24 +60,34 @@ SPDBFLAGS = /pdb:$(SERVER:.exe=.pdb) APDBFLAGS = /pdb:$(ADMIN:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, IceBox.res +SRES_FILE = ,, IceBoxExe.res +ARES_FILE = ,, IceBoxAdmin.res +!else +RES_FILE = IceBox.res +SRES_FILE = IceBoxExe.res +ARES_FILE = IceBoxAdmin.res +!endif + $(LIBNAME): $(DLLNAME) $(DLLNAME): $(OBJS) IceBox.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceBox.res $(PREOUT)$@ $(PRELIBS)$(LIBS) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp) $(SERVER): $(SOBJS) IceBoxExe.res - $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SOBJS) IceBoxExe.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LIBS) \ - icebox$(LIBSUFFIX).lib + $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LIBS) \ + icebox$(LIBSUFFIX).lib $(SRES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest $(ADMIN): $(AOBJS) IceBoxAdmin.res - $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(AOBJS) IceBoxAdmin.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LIBS) \ - icebox$(LIBSUFFIX).lib + $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(AOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LIBS) \ + icebox$(LIBSUFFIX).lib $(ARES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -107,7 +117,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/IceGrid/Makefile.mak b/cpp/src/IceGrid/Makefile.mak index 81c8f3b7ecd..c7c97cd8ead 100644 --- a/cpp/src/IceGrid/Makefile.mak +++ b/cpp/src/IceGrid/Makefile.mak @@ -101,13 +101,13 @@ ALINKWITH = $(LINKWITH) icegrid$(LIBSUFFIX).lib icexml$(LIBSUFFIX).lib icepatch icebox$(LIBSUFFIX).lib NLINKWITH = $(ALINKWITH) icestorm$(LIBSUFFIX).lib freeze$(LIBSUFFIX).lib icebox$(LIBSUFFIX).lib \ icessl$(LIBSUFFIX).lib icestormservice$(LIBSUFFIX).lib $(OPENSSL_LIBS) -!if "$(CPP_COMPILER)" != "BCC2006" +!if "$(CPP_COMPILER)" != "BCC2007" NLINKWITH = $(NLINKWITH) pdh.lib ws2_32.lib !endif SLICE2CPPFLAGS = --checksum --ice --include-dir IceGrid $(SLICE2CPPFLAGS) CPPFLAGS = -I. -I.. -Idummyinclude $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN -!if "$(CPP_COMPILER)" != "BCC2006" +!if "$(CPP_COMPILER)" != "BCC2007" CPPFLAGS = $(CPPFLAGS) -Zm200 !endif @@ -117,20 +117,29 @@ RPDBFLAGS = /pdb:$(REGISTRY_SERVER:.exe=.pdb) NPDBFLAGS = /pdb:$(NODE_SERVER:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +ARES_FILE = ,, IceGridAdmin.res +RRES_FILE = ,, IceGridRegistry.res +NRES_FILE = ,, IceGridNode.res +!else +ARES_FILE = IceGridAdmin.res +RRES_FILE = IceGridRegistry.res +NRES_FILE = IceGridNode.res +!endif + $(ADMIN): $(ADMIN_OBJS) IceGridAdmin.res - $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(ADMIN_OBJS) IceGridAdmin.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(ALINKWITH) + $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(ADMIN_OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(ALINKWITH) $(ARES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) &&\ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest $(REGISTRY_SERVER): $(REGISTRY_SVR_OBJS) IceGridRegistry.res - $(LINK) $(LD_EXEFLAGS) $(RPDBFLAGS) $(REGISTRY_SVR_OBJS) IceGridRegistry.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)$(NLINKWITH) + $(LINK) $(LD_EXEFLAGS) $(RPDBFLAGS) $(REGISTRY_SVR_OBJS) $(SETARGV) $(PREOUT)$@ \ + $(PRELIBS)$(NLINKWITH) $(RRES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest $(NODE_SERVER): $(NODE_SVR_OBJS) IceGridNode.res - $(LINK) $(LD_EXEFLAGS) $(NPDBFLAGS) $(NODE_SVR_OBJS) IceGridNode.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)$(NLINKWITH) + $(LINK) $(LD_EXEFLAGS) $(NPDBFLAGS) $(NODE_SVR_OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(NLINKWITH) $(NRES_FILE) @if exist $@.manifest \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -196,7 +205,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(ADMIN:.exe=.tds) $(install_bindir) diff --git a/cpp/src/IceGrid/NodeServerAdminRouter.cpp b/cpp/src/IceGrid/NodeServerAdminRouter.cpp index f54d2634f60..3e30aef52bb 100644 --- a/cpp/src/IceGrid/NodeServerAdminRouter.cpp +++ b/cpp/src/IceGrid/NodeServerAdminRouter.cpp @@ -10,6 +10,7 @@ #include #include #include +#include using namespace IceGrid; using namespace Ice; diff --git a/cpp/src/IceGrid/SessionServantManager.cpp b/cpp/src/IceGrid/SessionServantManager.cpp index d6b5469ffd1..6f19761a880 100644 --- a/cpp/src/IceGrid/SessionServantManager.cpp +++ b/cpp/src/IceGrid/SessionServantManager.cpp @@ -12,6 +12,10 @@ #include #include +#if defined(__BCPLUSPLUS__) +# include +#endif + using namespace std; using namespace IceGrid; diff --git a/cpp/src/IceGridLib/Makefile.mak b/cpp/src/IceGridLib/Makefile.mak index 4f147f79784..f69930f4692 100644 --- a/cpp/src/IceGridLib/Makefile.mak +++ b/cpp/src/IceGridLib/Makefile.mak @@ -41,10 +41,16 @@ CPPFLAGS = -I.. -DICE_GRID_API_EXPORTS $(CPPFLAGS) PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, IceGrid.res +!else +RES_FILE = IceGrid.res +!endif + $(LIBNAME): $(DLLNAME) $(DLLNAME): $(LIB_OBJS) IceGrid.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(LIB_OBJS) IceGrid.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(LIB_OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @@ -71,7 +77,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/IcePatch2/Makefile.mak b/cpp/src/IcePatch2/Makefile.mak index 58b9773179b..410223fd6e0 100644 --- a/cpp/src/IcePatch2/Makefile.mak +++ b/cpp/src/IcePatch2/Makefile.mak @@ -68,31 +68,43 @@ CPDBFLAGS = /pdb:$(CLIENT:.exe=.pdb) CAPDBFLAGS = /pdb:$(CALC:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, IcePatch2.res +SRES_FILE = ,, IcePatch2Server.res +CRES_FILE = ,, IcePatch2Client.res +CARES_FILE = ,, IcePatch2Calc.res +!else +RES_FILE = IcePatch2.res +SRES_FILE = IcePatch2Server.res +CRES_FILE = IcePatch2Client.res +CARES_FILE = IcePatch2Calc.res +!endif + $(LIBNAME): $(DLLNAME) $(DLLNAME): $(OBJS) IcePatch2.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IcePatch2.res $(PREOUT)$@ $(PRELIBS)$(LIBS) $(BZIP2_LIBS) \ - $(OPENSSL_LIBS) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) $(BZIP2_LIBS) \ + $(OPENSSL_LIBS) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest security.manifest -outputresource:$@;#2 && del /q $@.manifest @if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp) $(SERVER): $(SOBJS) IcePatch2Server.res - $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SETARGV) $(SOBJS) IcePatch2Server.res $(PREOUT)$@ $(PRELIBS)$(LIBS) \ - icepatch2$(LIBSUFFIX).lib + $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SETARGV) $(SOBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) \ + icepatch2$(LIBSUFFIX).lib $(SRES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest security.manifest -outputresource:$@;#1 && del /q $@.manifest $(CLIENT): $(COBJS) IcePatch2Client.res - $(LINK) $(LD_EXEFLAGS) $(CPDBFLAGS) $(SETARGV) $(COBJS) IcePatch2Client.res $(PREOUT)$@ $(PRELIBS)$(LIBS) \ - icepatch2$(LIBSUFFIX).lib + $(LINK) $(LD_EXEFLAGS) $(CPDBFLAGS) $(SETARGV) $(COBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) \ + icepatch2$(LIBSUFFIX).lib $(CRES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest security.manifest -outputresource:$@;#1 && del /q $@.manifest $(CALC): $(CALCOBJS) IcePatch2Calc.res - $(LINK) $(LD_EXEFLAGS) $(CAPDBFLAGS) $(SETARGV) $(CALCOBJS) IcePatch2Calc.res $(PREOUT)$@ $(PRELIBS)$(LIBS) \ - icepatch2$(LIBSUFFIX).lib + $(LINK) $(LD_EXEFLAGS) $(CAPDBFLAGS) $(SETARGV) $(CALCOBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) \ + icepatch2$(LIBSUFFIX).lib $(CARES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest security.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -128,7 +140,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/IceSSL/Makefile.mak b/cpp/src/IceSSL/Makefile.mak index 9bf80c9ef01..dd1d23986a3 100644 --- a/cpp/src/IceSSL/Makefile.mak +++ b/cpp/src/IceSSL/Makefile.mak @@ -34,7 +34,7 @@ HDIR = $(includedir)\IceSSL CPPFLAGS = -I.. $(CPPFLAGS) -DICE_SSL_API_EXPORTS -DFD_SETSIZE=1024 -DWIN32_LEAN_AND_MEAN LINKWITH = $(OPENSSL_LIBS) $(LIBS) -!if "$(CPP_COMPILER)" != "BCC2006" +!if "$(CPP_COMPILER)" != "BCC2007" LINKWITH = $(LINKWITH) ws2_32.lib !endif @@ -42,10 +42,16 @@ LINKWITH = $(LINKWITH) ws2_32.lib PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, IceSSL.res +!else +RES_FILE = IceSSL.res +!endif + $(LIBNAME): $(DLLNAME) $(DLLNAME): $(OBJS) IceSSL.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceSSL.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @@ -64,7 +70,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/IceStorm/Makefile.mak b/cpp/src/IceStorm/Makefile.mak index 1aef50b17ad..43b60e6fd3a 100644 --- a/cpp/src/IceStorm/Makefile.mak +++ b/cpp/src/IceStorm/Makefile.mak @@ -101,10 +101,22 @@ APDBFLAGS = /pdb:$(ADMIN:.exe=.pdb) MPDBFLAGS = /pdb:$(MIGRATE:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, IceStorm.res +SRES_FILE = ,, IceStormService.res +ARES_FILE = ,, IceStormAdmin.res +MRES_FILE = ,, IceStormMigrate.res +!else +RES_FILE = IceStorm.res +SRES_FILE = IceStormService.res +ARES_FILE = IceStormAdmin.res +MRES_FILE = IceStormMigrate.res +!endif + $(LIBNAME): $(DLLNAME) $(DLLNAME): $(OBJS) IceStorm.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceStorm.res $(PREOUT)$@ $(PRELIBS)$(LIBS) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @@ -113,19 +125,19 @@ $(DLLNAME): $(OBJS) IceStorm.res $(SVCLIBNAME): $(SVCDLLNAME) $(SVCDLLNAME): $(SERVICE_OBJS) IceStormService.res - $(LINK) $(LD_DLLFLAGS) $(SPDBFLAGS) $(SERVICE_OBJS) IceStormService.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH) + $(LINK) $(LD_DLLFLAGS) $(SPDBFLAGS) $(SERVICE_OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(SRES_FILE) move $(SVCDLLNAME:.dll=.lib) $(SVCLIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @if exist $(SVCDLLNAME:.dll=.exp) del /q $(SVCDLLNAME:.dll=.exp) $(ADMIN): $(AOBJS) IceStormAdmin.res - $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(AOBJS) IceStormAdmin.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(ALINKWITH) + $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(AOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(ALINKWITH) $(ARES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest $(MIGRATE): $(MOBJS) IceStormMigrate.res - $(LINK) $(LD_EXEFLAGS) $(MPDBFLAGS) $(MOBJS) IceStormMigrate.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(MLINKWITH) + $(LINK) $(LD_EXEFLAGS) $(MPDBFLAGS) $(MOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(MLINKWITH) $(MRES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -230,7 +242,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/IceStorm/Observers.cpp b/cpp/src/IceStorm/Observers.cpp index 8240a555c3a..5cafa770133 100644 --- a/cpp/src/IceStorm/Observers.cpp +++ b/cpp/src/IceStorm/Observers.cpp @@ -125,8 +125,12 @@ Observers::check() } int id = p->id; p = _observers.erase(p); - IceUtil::Mutex::Lock sync(_reapedMutex); + + // COMPILERFIX: Just using following causes double unlock with C++Builder 2007 + //IceUtil::Mutex::Lock sync(_reapedMutex); + _reapedMutex.lock(); _reaped.push_back(id); + _reapedMutex.unlock(); continue; } ++p; @@ -256,8 +260,12 @@ Observers::wait(const string& op) } int id = p->id; p = _observers.erase(p); - IceUtil::Mutex::Lock sync(_reapedMutex); + + // COMPILERFIX: Just using following causes double unlock with C++Builder 2007 + //IceUtil::Mutex::Lock sync(_reapedMutex); + _reapedMutex.lock(); _reaped.push_back(id); + _reapedMutex.unlock(); continue; } ++p; diff --git a/cpp/src/IceStorm/Service.cpp b/cpp/src/IceStorm/Service.cpp index 44cbd5bf24a..a8664970cfa 100644 --- a/cpp/src/IceStorm/Service.cpp +++ b/cpp/src/IceStorm/Service.cpp @@ -18,6 +18,7 @@ #include #include +#include #include #include diff --git a/cpp/src/IceStorm/TopicI.cpp b/cpp/src/IceStorm/TopicI.cpp index a391ab306de..a2ac604b93a 100644 --- a/cpp/src/IceStorm/TopicI.cpp +++ b/cpp/src/IceStorm/TopicI.cpp @@ -473,7 +473,6 @@ TopicImpl::TopicImpl( { Ice::Warning out(traceLevels->logger); out << _name << " recreate " << _instance->communicator()->identityToString(id) << " failed: " << ex; - continue; } } } diff --git a/cpp/src/IceStorm/TopicManagerI.cpp b/cpp/src/IceStorm/TopicManagerI.cpp index 077a77e0f2a..06b29b61c78 100644 --- a/cpp/src/IceStorm/TopicManagerI.cpp +++ b/cpp/src/IceStorm/TopicManagerI.cpp @@ -16,6 +16,7 @@ #include #include +#include #include diff --git a/cpp/src/IceStorm/TransientTopicManagerI.cpp b/cpp/src/IceStorm/TransientTopicManagerI.cpp index a928007c975..8ee99bbde7c 100644 --- a/cpp/src/IceStorm/TransientTopicManagerI.cpp +++ b/cpp/src/IceStorm/TransientTopicManagerI.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include diff --git a/cpp/src/IceUtil/Makefile.mak b/cpp/src/IceUtil/Makefile.mak index d3dabd7269d..8a40fd66062 100644 --- a/cpp/src/IceUtil/Makefile.mak +++ b/cpp/src/IceUtil/Makefile.mak @@ -46,6 +46,12 @@ CPPFLAGS = $(CPPFLAGS) -DICE_UTIL_API_EXPORTS -I.. -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, IceUtil.res +!else +RES_FILE = IceUtil.res +!endif + !if "$(STATICLIBS)" == "yes" $(DLLNAME): @@ -58,7 +64,7 @@ $(LIBNAME): $(OBJS) $(LIBNAME): $(DLLNAME) $(DLLNAME): $(OBJS) IceUtil.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceUtil.res $(PREOUT)$@ $(PRELIBS)$(ICE_OS_LIBS) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(ICE_OS_LIBS) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @@ -79,7 +85,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/IceXML/Makefile.mak b/cpp/src/IceXML/Makefile.mak index ab41e476cfb..9252cce8113 100644 --- a/cpp/src/IceXML/Makefile.mak +++ b/cpp/src/IceXML/Makefile.mak @@ -28,10 +28,16 @@ LINKWITH = $(EXPAT_LIBS) $(BASELIBS) PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, IceXML.res +!else +RES_FILE = IceXML.res +!endif + $(LIBNAME): $(DLLNAME) $(DLLNAME): $(OBJS) IceXML.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceXML.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @@ -50,7 +56,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/Slice/Makefile.mak b/cpp/src/Slice/Makefile.mak index 0b361d34eae..fe7f6db304d 100644 --- a/cpp/src/Slice/Makefile.mak +++ b/cpp/src/Slice/Makefile.mak @@ -40,6 +40,12 @@ CPPFLAGS = -I.. -Idummyinclude $(CPPFLAGS) -DSLICE_API_EXPORTS -DWIN32_LEAN_AND PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice.res +!else +RES_FILE = Slice.res +!endif + !if "$(STATICLIBS)" == "yes" $(DLLNAME): @@ -52,7 +58,7 @@ $(LIBNAME): $(OBJS) $(LIBNAME): $(DLLNAME) $(DLLNAME): $(OBJS) Slice.res - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) Slice.res $(PREOUT)$@ $(PRELIBS)$(BASELIBS) mcpp$(LIBSUFFIX).lib + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(BASELIBS) $(MCPP_LIBS) $(RES_FILE) move $(DLLNAME:.dll=.lib) $(LIBNAME) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest @@ -89,7 +95,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) diff --git a/cpp/src/Slice/Util.cpp b/cpp/src/Slice/Util.cpp index 470821a68b3..c4cb197e655 100644 --- a/cpp/src/Slice/Util.cpp +++ b/cpp/src/Slice/Util.cpp @@ -15,6 +15,10 @@ # include #endif +#ifdef __BCPLUSPLUS__ +# include +#endif + using namespace std; using namespace Slice; diff --git a/cpp/src/iceserviceinstall/Install.cpp b/cpp/src/iceserviceinstall/Install.cpp index c1e11015280..0c46d3a35e2 100755 --- a/cpp/src/iceserviceinstall/Install.cpp +++ b/cpp/src/iceserviceinstall/Install.cpp @@ -67,7 +67,7 @@ Install::run(int argc, char* argv[]) vector commands; try { - commands = opts.parse(argc, argv); + commands = opts.parse(argc, (const char**)argv); } catch(const IceUtilInternal::BadOptException& e) { diff --git a/cpp/src/iceserviceinstall/Makefile.mak b/cpp/src/iceserviceinstall/Makefile.mak index b54ab80710a..a97200a38f0 100755 --- a/cpp/src/iceserviceinstall/Makefile.mak +++ b/cpp/src/iceserviceinstall/Makefile.mak @@ -33,8 +33,14 @@ EXTRA_MANIFEST = security.manifest PDBFLAGS = /pdb:$(TOOL:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, IceServiceInstall.res +!else +RES_FILE = IceServiceInstall.res +!endif + $(TOOL): $(OBJS) IceServiceInstall.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) IceServiceInstall.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest $(EXTRA_MANIFEST) -outputresource:$@;#1 && del /q $@.manifest @@ -51,7 +57,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(TOOL:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2cpp/Makefile.mak b/cpp/src/slice2cpp/Makefile.mak index 433bcac6e89..cbcf0fd0368 100644 --- a/cpp/src/slice2cpp/Makefile.mak +++ b/cpp/src/slice2cpp/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2Cpp.res +!else +RES_FILE = Slice2Cpp.res +!endif + $(NAME): $(OBJS) Slice2Cpp.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Cpp.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2cppe/Makefile.mak b/cpp/src/slice2cppe/Makefile.mak index 956d83bd492..3680bd5b7d1 100644 --- a/cpp/src/slice2cppe/Makefile.mak +++ b/cpp/src/slice2cppe/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2CppE.res +!else +RES_FILE = Slice2CppE.res +!endif + $(NAME): $(OBJS) Slice2CppE.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2CppE.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2cs/Gen.cpp b/cpp/src/slice2cs/Gen.cpp index a4e0baee242..e16e3f67600 100755 --- a/cpp/src/slice2cs/Gen.cpp +++ b/cpp/src/slice2cs/Gen.cpp @@ -735,7 +735,7 @@ Slice::CsVisitor::writeDispatchAndMarshalling(const ClassDefPtr& p, bool stream) string memberType = typeToString((*d)->type()); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*d)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(allClassMembers.size() > 1) { @@ -2029,7 +2029,7 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) string memberType = typeToString((*q)->type()); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*q)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(allClassMembers.size() > 1) { @@ -2387,7 +2387,7 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p) string memberName = fixId((*q)->name(), isClass ? DotNet::ICloneable : 0); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*q)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(classMembers.size() > 1) { @@ -3643,9 +3643,9 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p) } _out << " e__ in v__)"; _out << sb; - string keyArg = isNewMapping ? "e__.Key" : "((" + keyS + ")e__.Key)"; + string keyArg = isNewMapping ? string("e__.Key") : "((" + keyS + ")e__.Key)"; writeMarshalUnmarshalCode(_out, key, keyArg, true, false, false); - string valueArg = isNewMapping ? "e__.Value" : "((" + valueS + ")e__.Value)"; + string valueArg = isNewMapping ? string("e__.Value") : "((" + valueS + ")e__.Value)"; writeMarshalUnmarshalCode(_out, value, valueArg, true, false, false); _out << eb; _out << eb; @@ -4053,7 +4053,7 @@ Slice::Gen::DelegateMVisitor::visitClassDefStart(const ClassDefPtr& p) { _out << nl << retS << " ret__;"; ContainedPtr contained = ContainedPtr::dynamicCast(ret); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "IceInternal.ParamPatcher<" << retS << "> ret___PP = new IceInternal.ParamPatcher<" << retS << ">(\"" << sliceId << "\");"; _out << nl << "is__.readObject(ret___PP);"; diff --git a/cpp/src/slice2cs/Makefile.mak b/cpp/src/slice2cs/Makefile.mak index 02d60d3f5a7..bbb884c5022 100644 --- a/cpp/src/slice2cs/Makefile.mak +++ b/cpp/src/slice2cs/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2Cs.res +!else +RES_FILE = Slice2Cs.res +!endif + $(NAME): $(OBJS) Slice2Cs.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Cs.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2docbook/Makefile.mak b/cpp/src/slice2docbook/Makefile.mak index b810365c1cf..4bffe9bc0c7 100644 --- a/cpp/src/slice2docbook/Makefile.mak +++ b/cpp/src/slice2docbook/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2Docbook.res +!else +RES_FILE = Slice2Docbook.res +!endif + $(NAME): $(OBJS) Slice2Docbook.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Docbook.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2freeze/Makefile.mak b/cpp/src/slice2freeze/Makefile.mak index 642e5eb78c1..93b43afba3b 100644 --- a/cpp/src/slice2freeze/Makefile.mak +++ b/cpp/src/slice2freeze/Makefile.mak @@ -25,9 +25,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2Freeze.res +!else +RES_FILE = Slice2Freeze.res +!endif + $(NAME): $(OBJS) Slice2Freeze.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Freeze.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -43,7 +49,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2freezej/Makefile.mak b/cpp/src/slice2freezej/Makefile.mak index 30539e60fb5..c5d2fef472a 100644 --- a/cpp/src/slice2freezej/Makefile.mak +++ b/cpp/src/slice2freezej/Makefile.mak @@ -25,9 +25,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2FreezeJ.res +!else +RES_FILE = Slice2FreezeJ.res +!endif + $(NAME): $(OBJS) Slice2FreezeJ.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2FreezeJ.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -43,7 +49,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2html/Makefile.mak b/cpp/src/slice2html/Makefile.mak index a3110b9790f..75f9a0e680e 100644 --- a/cpp/src/slice2html/Makefile.mak +++ b/cpp/src/slice2html/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2Html.res +!else +RES_FILE = Slice2Html.res +!endif + $(NAME): $(OBJS) Slice2Html.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Html.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2java/Makefile.mak b/cpp/src/slice2java/Makefile.mak index cee1a3e638f..f4530ae60ce 100644 --- a/cpp/src/slice2java/Makefile.mak +++ b/cpp/src/slice2java/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2Java.res +!else +RES_FILE = Slice2Java.res +!endif + $(NAME): $(OBJS) Slice2Java.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Java.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2javae/Makefile.mak b/cpp/src/slice2javae/Makefile.mak index c74e55bb3e2..c2674b76c01 100644 --- a/cpp/src/slice2javae/Makefile.mak +++ b/cpp/src/slice2javae/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2JavaE.res +!else +RES_FILE = Slice2JavaE.res +!endif + $(NAME): $(OBJS) Slice2JavaE.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2JavaE.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2py/Makefile.mak b/cpp/src/slice2py/Makefile.mak index 9acdec7cd7e..e0658311397 100644 --- a/cpp/src/slice2py/Makefile.mak +++ b/cpp/src/slice2py/Makefile.mak @@ -25,9 +25,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2Py.res +!else +RES_FILE = Slice2Py.res +!endif + $(NAME): $(OBJS) Slice2Py.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Py.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -43,7 +49,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2rb/Makefile.mak b/cpp/src/slice2rb/Makefile.mak index 854f3d66d01..da25cbde75f 100755 --- a/cpp/src/slice2rb/Makefile.mak +++ b/cpp/src/slice2rb/Makefile.mak @@ -25,9 +25,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2Rb.res +!else +RES_FILE = Slice2Rb.res +!endif + $(NAME): $(OBJS) Slice2Rb.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Rb.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -43,7 +49,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) diff --git a/cpp/src/slice2sl/Gen.cpp b/cpp/src/slice2sl/Gen.cpp index f9f3538e32b..928c019f67d 100755 --- a/cpp/src/slice2sl/Gen.cpp +++ b/cpp/src/slice2sl/Gen.cpp @@ -281,7 +281,7 @@ Slice::CsVisitor::writeDispatchAndMarshalling(const ClassDefPtr& p) string memberType = typeToString((*d)->type()); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*d)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(allClassMembers.size() > 1) { @@ -1461,7 +1461,7 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) string memberType = typeToString((*q)->type()); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*q)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(allClassMembers.size() > 1) { @@ -1731,7 +1731,7 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p) string memberName = fixId((*q)->name(), isClass ? DotNet::ICloneable : 0); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*q)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(classMembers.size() > 1) { @@ -2621,7 +2621,7 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p) { _out << nl << retS << " ret__;"; ContainedPtr contained = ContainedPtr::dynamicCast(ret); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "IceInternal.ParamPatcher<" << retS << "> ret___PP = new IceInternal.ParamPatcher<" << retS << ">(\"" << sliceId << "\");"; _out << nl << "is__.readObject(ret___PP);"; @@ -3051,9 +3051,9 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p) } _out << " e__ in v__)"; _out << sb; - string keyArg = isNewMapping ? "e__.Key" : "((" + keyS + ")e__.Key)"; + string keyArg = isNewMapping ? string("e__.Key") : "((" + keyS + ")e__.Key)"; writeMarshalUnmarshalCode(_out, key, keyArg, true, false, false); - string valueArg = isNewMapping ? "e__.Value" : "((" + valueS + ")e__.Value)"; + string valueArg = isNewMapping ? string("e__.Value") : "((" + valueS + ")e__.Value)"; writeMarshalUnmarshalCode(_out, value, valueArg, true, false, false); _out << eb; _out << eb; diff --git a/cpp/src/slice2sl/Makefile.mak b/cpp/src/slice2sl/Makefile.mak index 0d016eba517..7a8ec7a873e 100644 --- a/cpp/src/slice2sl/Makefile.mak +++ b/cpp/src/slice2sl/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb) !endif +!if "$(CPP_COMPILER)" == "BCC2007" +RES_FILE = ,, Slice2Sl.res +!else +RES_FILE = Slice2Sl.res +!endif + $(NAME): $(OBJS) Slice2Sl.res - $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Sl.res $(SETARGV) $(PREOUT)$@ \ - $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \ + $(BASELIBS) $(RES_FILE) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest @@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes" -!if "$(CPP_COMPILER)" == "BCC2006" +!if "$(CPP_COMPILER)" == "BCC2007" install:: all copy $(NAME:.exe=.tds) $(install_bindir) -- cgit v1.2.3