void CLocaLogicImpl::ConvertFromPythonString(auto_ptr<HBufC8>& aBuf, PyObject* aString) { if (PyString_Check(aString)) { TInt len=PyString_Size(aString); if (! aBuf.get() || aBuf->Des().MaxLength() < len) { aBuf.reset(HBufC8::NewL(len*2)); } aBuf->Des()=TPtrC8((TUint8*)PyString_AsString(aString), len); } else if (PyUnicode_Check(aString)) { TInt len=PyUnicode_GetSize(aString); if (! aBuf.get() || aBuf->Des().MaxLength() < len) { aBuf.reset(HBufC8::NewL(len*2)); } TPtr8 p=aBuf->Des(); iCC->ConvertFromUnicode(p, TPtrC((TUint16*)PyUnicode_AsUnicode(aString), len)); } PyErr_Clear(); }