From 4f5b3e4bd53d6d61df1f65f496f7bc8dc525c8a1 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Fri, 1 Oct 2021 09:09:45 +0200 Subject: In O[U]StringBuffer, make string_view params replacements for OUString ones ...for LIBO_INTERNAL_ONLY, instead of having them as additional overloads. That way, loplugin:bufferadd and loplugin:stringviewparam found many further opportunities for simplification (all addressed here). Some notes: * There is no longer an implicit conversion from O[U]String to O[U]StringBuffer (as that goes via user-defined conversions through string_view now), which was most noticeable in copy initializations like OStringBuffer buf = someStr; that had to be changed to direct initialization, OStringBuffer buf(someStr); But then again, it wasn't too many places that were affected and I think we can live with that. * I made the O[U]StringBuffer ctors taking string_view non-explicit, mainly to get them in line with their counterparts taking O[U]String. * I added an OUStringBuffer::lastIndexOf string_view overload that was missing (relative to OUStringBuffer::indexOf). * loplugin:stringconstant needed some addition to keep the compilerplugins/clang/test/stringconstant.cxx checks related to OStringBuffer::append and OStringBuffer::insert working. * loplugin:stringviewparam no longer needs the special O[U]StringBuffer-related code that had been introduced in 1250aecd71fabde4dba990bfceb61bbe8e06b8ea "loplugin:stringviewparam extend to new.." Change-Id: Ib1bb8c4632d99b744e742605a9fef6eae959fd72 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122904 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- cppu/source/uno/lbenv.cxx | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'cppu') diff --git a/cppu/source/uno/lbenv.cxx b/cppu/source/uno/lbenv.cxx index 5cbfc252c901..4af07c9d1944 100644 --- a/cppu/source/uno/lbenv.cxx +++ b/cppu/source/uno/lbenv.cxx @@ -840,19 +840,16 @@ static void unoenv_computeObjectIdentifier( return; (*pUnoI->release)( pUnoI ); - // interface - OUStringBuffer oid( 64 ); - oid.append( reinterpret_cast< sal_Int64 >(pUnoI), 16 ); - oid.append( ';' ); - // environment[context] - oid.append( pEnv->aBase.pTypeName ); - oid.append( '[' ); - oid.append( reinterpret_cast< sal_Int64 >( + OUString aStr( + // interface + OUString::number( reinterpret_cast< sal_Int64 >(pUnoI), 16 ) + ";" + // environment[context] + + OUString::unacquired(&pEnv->aBase.pTypeName) + "[" + + OUString::number( reinterpret_cast< sal_Int64 >( reinterpret_cast< - uno_Environment * >(pEnv)->pContext ), 16 ); - // process;good guid - oid.append( unoenv_getStaticOIdPart() ); - OUString aStr( oid.makeStringAndClear() ); + uno_Environment * >(pEnv)->pContext ), 16 ) + // process;good guid + + unoenv_getStaticOIdPart() ); *ppOId = aStr.pData; ::rtl_uString_acquire( *ppOId ); } -- cgit