diff options
-rw-r--r-- | py/modules/IcePy/Communicator.cpp | 4 | ||||
-rw-r--r-- | py/modules/IcePy/Connection.cpp | 4 | ||||
-rw-r--r-- | py/modules/IcePy/Current.cpp | 4 | ||||
-rw-r--r-- | py/modules/IcePy/ImplicitContext.cpp | 6 | ||||
-rw-r--r-- | py/modules/IcePy/ObjectAdapter.cpp | 2 | ||||
-rw-r--r-- | py/modules/IcePy/Properties.cpp | 10 | ||||
-rw-r--r-- | py/modules/IcePy/Proxy.cpp | 8 | ||||
-rw-r--r-- | py/modules/IcePy/Types.cpp | 8 | ||||
-rw-r--r-- | py/modules/IcePy/Util.cpp | 70 | ||||
-rw-r--r-- | py/modules/IcePy/Util.h | 5 |
10 files changed, 63 insertions, 58 deletions
diff --git a/py/modules/IcePy/Communicator.cpp b/py/modules/IcePy/Communicator.cpp index 61c9051aa8f..23231208a50 100644 --- a/py/modules/IcePy/Communicator.cpp +++ b/py/modules/IcePy/Communicator.cpp @@ -489,7 +489,7 @@ communicatorProxyToString(CommunicatorObject* self, PyObject* args) return 0; } - return PyString_FromString(const_cast<char*>(str.c_str())); + return createString(str); } #ifdef WIN32 @@ -577,7 +577,7 @@ communicatorIdentityToString(CommunicatorObject* self, PyObject* args) return 0; } - return PyString_FromString(const_cast<char*>(str.c_str())); + return createString(str); } #ifdef WIN32 diff --git a/py/modules/IcePy/Connection.cpp b/py/modules/IcePy/Connection.cpp index 254952de8ae..3d6ddf0f1e8 100644 --- a/py/modules/IcePy/Connection.cpp +++ b/py/modules/IcePy/Connection.cpp @@ -236,7 +236,7 @@ connectionType(ConnectionObject* self) return 0; } - return PyString_FromString(const_cast<char*>(type.c_str())); + return createString(type); } #ifdef WIN32 @@ -278,7 +278,7 @@ connectionToString(ConnectionObject* self) return 0; } - return PyString_FromString(const_cast<char*>(str.c_str())); + return createString(str); } static PyMethodDef ConnectionMethods[] = diff --git a/py/modules/IcePy/Current.cpp b/py/modules/IcePy/Current.cpp index 10573868b43..455c17f6e5e 100644 --- a/py/modules/IcePy/Current.cpp +++ b/py/modules/IcePy/Current.cpp @@ -154,7 +154,7 @@ currentGetter(CurrentObject* self, void* closure) { if(!self->facet) { - self->facet = PyString_FromString(const_cast<char*>(self->current->facet.c_str())); + self->facet = createString(self->current->facet); } Py_INCREF(self->facet); result = self->facet; @@ -164,7 +164,7 @@ currentGetter(CurrentObject* self, void* closure) { if(!self->operation) { - self->operation = PyString_FromString(const_cast<char*>(self->current->operation.c_str())); + self->operation = createString(self->current->operation); } Py_INCREF(self->operation); result = self->operation; diff --git a/py/modules/IcePy/ImplicitContext.cpp b/py/modules/IcePy/ImplicitContext.cpp index cec0805aaae..039ece7554c 100644 --- a/py/modules/IcePy/ImplicitContext.cpp +++ b/py/modules/IcePy/ImplicitContext.cpp @@ -178,7 +178,7 @@ implicitContextGet(ImplicitContextObject* self, PyObject* args) setPythonException(ex); return 0; } - return PyString_FromString(const_cast<char*>(val.c_str())); + return createString(val); } #ifdef WIN32 @@ -204,7 +204,7 @@ implicitContextPut(ImplicitContextObject* self, PyObject* args) setPythonException(ex); return 0; } - return PyString_FromString(const_cast<char*>(oldVal.c_str())); + return createString(oldVal); } #ifdef WIN32 @@ -229,7 +229,7 @@ implicitContextRemove(ImplicitContextObject* self, PyObject* args) setPythonException(ex); return 0; } - return PyString_FromString(const_cast<char*>(val.c_str())); + return createString(val); } static PyMethodDef ImplicitContextMethods[] = diff --git a/py/modules/IcePy/ObjectAdapter.cpp b/py/modules/IcePy/ObjectAdapter.cpp index ad9ded8b5f7..da0c780b1e3 100644 --- a/py/modules/IcePy/ObjectAdapter.cpp +++ b/py/modules/IcePy/ObjectAdapter.cpp @@ -314,7 +314,7 @@ adapterGetName(ObjectAdapterObject* self) return 0; } - return PyString_FromString(const_cast<char*>(name.c_str())); + return createString(name); } #ifdef WIN32 diff --git a/py/modules/IcePy/Properties.cpp b/py/modules/IcePy/Properties.cpp index 808a9997b9d..44c2bffcd90 100644 --- a/py/modules/IcePy/Properties.cpp +++ b/py/modules/IcePy/Properties.cpp @@ -163,7 +163,7 @@ propertiesStr(PropertiesObject* self) str.append(p->first + "=" + p->second); } - return PyString_FromString(const_cast<char*>(str.c_str())); + return createString(str); } #ifdef WIN32 @@ -190,7 +190,7 @@ propertiesGetProperty(PropertiesObject* self, PyObject* args) return 0; } - return PyString_FromString(const_cast<char*>(value.c_str())); + return createString(value); } #ifdef WIN32 @@ -218,7 +218,7 @@ propertiesGetPropertyWithDefault(PropertiesObject* self, PyObject* args) return 0; } - return PyString_FromString(const_cast<char*>(value.c_str())); + return createString(value); } #ifdef WIN32 @@ -388,8 +388,8 @@ propertiesGetPropertiesForPrefix(PropertiesObject* self, PyObject* args) { for(Ice::PropertyDict::iterator p = dict.begin(); p != dict.end(); ++p) { - PyObjectHandle key = PyString_FromString(const_cast<char*>(p->first.c_str())); - PyObjectHandle val = PyString_FromString(const_cast<char*>(p->second.c_str())); + PyObjectHandle key = createString(p->first); + PyObjectHandle val = createString(p->second); if(!val.get() || PyDict_SetItem(result.get(), key.get(), val.get()) < 0) { return 0; diff --git a/py/modules/IcePy/Proxy.cpp b/py/modules/IcePy/Proxy.cpp index d0be96ba14d..27b8b45018a 100644 --- a/py/modules/IcePy/Proxy.cpp +++ b/py/modules/IcePy/Proxy.cpp @@ -104,7 +104,7 @@ static PyObject* endpointToString(EndpointObject* self) { string str = (*self->endpoint)->toString(); - return PyString_FromString(const_cast<char*>(str.c_str())); + return createString(str); } // @@ -184,7 +184,7 @@ static PyObject* proxyRepr(ProxyObject* self) { string str = (*self->proxy)->ice_toString(); - return PyString_FromString(const_cast<char*>(str.c_str())); + return createString(str); } #ifdef WIN32 @@ -478,7 +478,7 @@ proxyIceGetFacet(ProxyObject* self) return 0; } - return PyString_FromString(const_cast<char*>(facet.c_str())); + return createString(facet); } #ifdef WIN32 @@ -538,7 +538,7 @@ proxyIceGetAdapterId(ProxyObject* self) return 0; } - return PyString_FromString(const_cast<char*>(id.c_str())); + return createString(id); } #ifdef WIN32 diff --git a/py/modules/IcePy/Types.cpp b/py/modules/IcePy/Types.cpp index 3f4c2b8e5e8..1a9a5a94377 100644 --- a/py/modules/IcePy/Types.cpp +++ b/py/modules/IcePy/Types.cpp @@ -582,7 +582,7 @@ IcePy::PrimitiveInfo::unmarshal(const Ice::InputStreamPtr& is, const UnmarshalCa case PrimitiveInfo::KindString: { string val = is->readString(); - PyObjectHandle p = PyString_FromString(val.c_str()); + PyObjectHandle p = PyString_FromStringAndSize(val.c_str(), static_cast<Py_ssize_t>(val.size())); cb->unmarshaled(p.get(), target, closure); break; } @@ -1534,7 +1534,7 @@ IcePy::SequenceInfo::unmarshalPrimitiveSequence(const PrimitiveInfoPtr& pi, cons for(int i = 0; i < sz; ++i) { - PyObjectHandle item = PyString_FromString(seq[i].c_str()); + PyObjectHandle item = PyString_FromStringAndSize(seq[i].c_str(), static_cast<Py_ssize_t>(seq[i].size())); if(!item.get()) { throw AbortMarshaling(); @@ -3092,7 +3092,7 @@ IcePy_stringify(PyObject*, PyObject* args) info->print(value, out, &history); string str = ostr.str(); - return PyString_FromString(str.c_str()); + return createString(str); } extern "C" @@ -3115,5 +3115,5 @@ IcePy_stringifyException(PyObject*, PyObject* args) info->print(value, out); string str = ostr.str(); - return PyString_FromString(str.c_str()); + return createString(str); } diff --git a/py/modules/IcePy/Util.cpp b/py/modules/IcePy/Util.cpp index 513a32f4af2..ec835c0a1ec 100644 --- a/py/modules/IcePy/Util.cpp +++ b/py/modules/IcePy/Util.cpp @@ -423,8 +423,8 @@ IcePy::contextToDictionary(const Ice::Context& ctx, PyObject* dict) for(Ice::Context::const_iterator p = ctx.begin(); p != ctx.end(); ++p) { - PyObjectHandle key = PyString_FromString(const_cast<char*>(p->first.c_str())); - PyObjectHandle value = PyString_FromString(const_cast<char*>(p->second.c_str())); + PyObjectHandle key = createString(p->first); + PyObjectHandle value = createString(p->second); if(!key.get() || !value.get()) { return false; @@ -504,68 +504,68 @@ convertLocalException(const Ice::LocalException& ex, PyObject* p) } catch(const Ice::InitializationException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.reason.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.reason); PyObject_SetAttrString(p, STRCAST("reason"), m.get()); } catch(const Ice::PluginInitializationException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.reason.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.reason); PyObject_SetAttrString(p, STRCAST("reason"), m.get()); } catch(const Ice::AlreadyRegisteredException& e) { IcePy::PyObjectHandle m; - m = PyString_FromString(const_cast<char*>(e.kindOfObject.c_str())); + m = IcePy::createString(e.kindOfObject); PyObject_SetAttrString(p, STRCAST("kindOfObject"), m.get()); - m = PyString_FromString(const_cast<char*>(e.id.c_str())); + m = IcePy::createString(e.id); PyObject_SetAttrString(p, STRCAST("id"), m.get()); } catch(const Ice::NotRegisteredException& e) { IcePy::PyObjectHandle m; - m = PyString_FromString(const_cast<char*>(e.kindOfObject.c_str())); + m = IcePy::createString(e.kindOfObject); PyObject_SetAttrString(p, STRCAST("kindOfObject"), m.get()); - m = PyString_FromString(const_cast<char*>(e.id.c_str())); + m = IcePy::createString(e.id); PyObject_SetAttrString(p, STRCAST("id"), m.get()); } catch(const Ice::TwowayOnlyException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.operation.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.operation); PyObject_SetAttrString(p, STRCAST("operation"), m.get()); } catch(const Ice::UnknownException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.unknown.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.unknown); PyObject_SetAttrString(p, STRCAST("unknown"), m.get()); } catch(const Ice::ObjectAdapterDeactivatedException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.name.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.name); PyObject_SetAttrString(p, STRCAST("name"), m.get()); } catch(const Ice::ObjectAdapterIdInUseException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.id.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.id); PyObject_SetAttrString(p, STRCAST("id"), m.get()); } catch(const Ice::NoEndpointException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.proxy.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.proxy); PyObject_SetAttrString(p, STRCAST("proxy"), m.get()); } catch(const Ice::EndpointParseException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.str.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.str); PyObject_SetAttrString(p, STRCAST("str"), m.get()); } catch(const Ice::IdentityParseException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.str.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.str); PyObject_SetAttrString(p, STRCAST("str"), m.get()); } catch(const Ice::ProxyParseException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.str.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.str); PyObject_SetAttrString(p, STRCAST("str"), m.get()); } catch(const Ice::IllegalIdentityException& e) @@ -578,16 +578,16 @@ convertLocalException(const Ice::LocalException& ex, PyObject* p) IcePy::PyObjectHandle m; m = IcePy::createIdentity(e.id); PyObject_SetAttrString(p, STRCAST("id"), m.get()); - m = PyString_FromString(const_cast<char*>(e.facet.c_str())); + m = IcePy::createString(e.facet); PyObject_SetAttrString(p, STRCAST("facet"), m.get()); - m = PyString_FromString(const_cast<char*>(e.operation.c_str())); + m = IcePy::createString(e.operation); PyObject_SetAttrString(p, STRCAST("operation"), m.get()); } catch(const Ice::FileException& e) { IcePy::PyObjectHandle m = PyInt_FromLong(e.error); PyObject_SetAttrString(p, STRCAST("error"), m.get()); - m = PyString_FromString(const_cast<char*>(e.path.c_str())); + m = IcePy::createString(e.path); PyObject_SetAttrString(p, STRCAST("path"), m.get()); } catch(const Ice::SyscallException& e) // This must appear after all subclasses of SyscallException. @@ -600,7 +600,7 @@ convertLocalException(const Ice::LocalException& ex, PyObject* p) IcePy::PyObjectHandle m; m = PyInt_FromLong(e.error); PyObject_SetAttrString(p, STRCAST("error"), m.get()); - m = PyString_FromString(const_cast<char*>(e.host.c_str())); + m = IcePy::createString(e.host); PyObject_SetAttrString(p, STRCAST("host"), m.get()); } catch(const Ice::UnsupportedProtocolException& e) @@ -630,34 +630,34 @@ convertLocalException(const Ice::LocalException& ex, PyObject* p) catch(const Ice::NoObjectFactoryException& e) { IcePy::PyObjectHandle m; - m = PyString_FromString(const_cast<char*>(e.reason.c_str())); + m = IcePy::createString(e.reason); PyObject_SetAttrString(p, STRCAST("reason"), m.get()); - m = PyString_FromString(const_cast<char*>(e.type.c_str())); + m = IcePy::createString(e.type); PyObject_SetAttrString(p, STRCAST("type"), m.get()); } catch(const Ice::UnexpectedObjectException& e) { IcePy::PyObjectHandle m; - m = PyString_FromString(const_cast<char*>(e.reason.c_str())); + m = IcePy::createString(e.reason); PyObject_SetAttrString(p, STRCAST("reason"), m.get()); - m = PyString_FromString(const_cast<char*>(e.type.c_str())); + m = IcePy::createString(e.type); PyObject_SetAttrString(p, STRCAST("type"), m.get()); - m = PyString_FromString(const_cast<char*>(e.expectedType.c_str())); + m = IcePy::createString(e.expectedType); PyObject_SetAttrString(p, STRCAST("expectedType"), m.get()); } catch(const Ice::ProtocolException& e) // This must appear after all subclasses of ProtocolException. { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.reason.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.reason); PyObject_SetAttrString(p, STRCAST("reason"), m.get()); } catch(const Ice::FeatureNotSupportedException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.unsupportedFeature.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.unsupportedFeature); PyObject_SetAttrString(p, STRCAST("unsupportedFeature"), m.get()); } catch(const Ice::SecurityException& e) { - IcePy::PyObjectHandle m = PyString_FromString(const_cast<char*>(e.reason.c_str())); + IcePy::PyObjectHandle m = IcePy::createString(e.reason); PyObject_SetAttrString(p, STRCAST("reason"), m.get()); } catch(const Ice::LocalException&) @@ -700,7 +700,7 @@ IcePy::convertException(const Ice::Exception& ex) p = createExceptionInstance(type); if(p.get()) { - PyObjectHandle s = PyString_FromString(const_cast<char*>(str.c_str())); + PyObjectHandle s = createString(str); PyObject_SetAttrString(p.get(), STRCAST("unknown"), s.get()); } } @@ -712,7 +712,7 @@ IcePy::convertException(const Ice::Exception& ex) p = createExceptionInstance(type); if(p.get()) { - PyObjectHandle s = PyString_FromString(const_cast<char*>(str.c_str())); + PyObjectHandle s = createString(str); PyObject_SetAttrString(p.get(), STRCAST("unknown"), s.get()); } } @@ -723,7 +723,7 @@ IcePy::convertException(const Ice::Exception& ex) p = createExceptionInstance(type); if(p.get()) { - PyObjectHandle s = PyString_FromString(const_cast<char*>(str.c_str())); + PyObjectHandle s = createString(str); PyObject_SetAttrString(p.get(), STRCAST("unknown"), s.get()); } } @@ -832,8 +832,8 @@ bool IcePy::setIdentity(PyObject* p, const Ice::Identity& ident) { assert(checkIdentity(p)); - PyObjectHandle name = PyString_FromString(const_cast<char*>(ident.name.c_str())); - PyObjectHandle category = PyString_FromString(const_cast<char*>(ident.category.c_str())); + PyObjectHandle name = createString(ident.name); + PyObjectHandle category = createString(ident.category); if(!name.get() || !category.get()) { return false; @@ -902,7 +902,7 @@ IcePy_identityToString(PyObject* /*self*/, PyObject* args) IcePy::setPythonException(ex); return 0; } - return PyString_FromString(const_cast<char*>(s.c_str())); + return IcePy::createString(s); } extern "C" @@ -934,5 +934,5 @@ PyObject* IcePy_generateUUID(PyObject* /*self*/) { string uuid = IceUtil::generateUUID(); - return PyString_FromString(const_cast<char*>(uuid.c_str())); + return IcePy::createString(uuid); } diff --git a/py/modules/IcePy/Util.h b/py/modules/IcePy/Util.h index 104a259277a..a9b084ecbee 100644 --- a/py/modules/IcePy/Util.h +++ b/py/modules/IcePy/Util.h @@ -47,6 +47,11 @@ inline PyObject* getTrue() return reinterpret_cast<PyObject*>(i); } +inline PyObject* createString(const std::string& str) +{ + return PyString_FromStringAndSize(str.c_str(), static_cast<Py_ssize_t>(str.size())); +} + // // Invokes Py_DECREF on a Python object. // |