[Libreoffice-commits] core.git: 10 commits - basic/source filter/source i18npool/inc l10ntools/source sax/source sc/inc sc/source toolkit/source vcl/generic vcl/osx vcl/source vcl/unx vcl/win
Michael Stahl
mstahl at redhat.com
Tue Sep 29 05:59:28 PDT 2015
basic/source/runtime/iosys.cxx | 2
basic/source/sbx/sbxvar.cxx | 2
filter/source/placeware/tempfile.cxx | 120 -----------------------------
i18npool/inc/collatorImpl.hxx | 2
l10ntools/source/xmlparse.cxx | 1
sax/source/expatwrap/sax_expat.cxx | 40 ---------
sc/inc/pch/precompiled_sc.hxx | 1
sc/source/core/tool/address.cxx | 1
toolkit/source/awt/vclxfont.cxx | 5 -
toolkit/source/awt/vclxgraphics.cxx | 5 -
vcl/generic/fontmanager/fontconfig.cxx | 6 -
vcl/generic/fontmanager/fontmanager.cxx | 4
vcl/generic/glyphs/gcach_layout.cxx | 1
vcl/osx/salframeview.mm | 1
vcl/source/font/PhysicalFontCollection.cxx | 5 -
vcl/source/gdi/sallayout.cxx | 25 ++----
vcl/source/outdev/text.cxx | 28 +++---
vcl/unx/generic/app/i18n_ic.cxx | 1
vcl/unx/generic/gdi/salgdi3.cxx | 1
vcl/unx/generic/printer/jobdata.cxx | 7 -
vcl/win/source/gdi/winlayout.cxx | 6 +
21 files changed, 49 insertions(+), 215 deletions(-)
New commits:
commit ea8de68df5e7f4388bd7d9dea0bdbcf73c889875
Author: Michael Stahl <mstahl at redhat.com>
Date: Mon Sep 28 22:52:22 2015 +0200
vcl: Vista implies usp10.dll >= 1.600
... claims https://en.wikipedia.org/wiki/Uniscribe - #ifdef this so it
can be removed when dropping XP support.
Change-Id: I9a51635cf9bb4876faf6dca011e6da9e1c2dc35d
diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx
index 454ecae..0572b21 100644
--- a/vcl/win/source/gdi/winlayout.cxx
+++ b/vcl/win/source/gdi/winlayout.cxx
@@ -626,6 +626,7 @@ static bool bManualCellAlign = true;
static void InitUSP()
{
+#if _WIN32_WINNT < _WIN32_WINNT_VISTA
// get the usp10.dll version info
HMODULE usp10 = GetModuleHandle("usp10.dll");
void *pScriptIsComplex = reinterpret_cast< void* >( GetProcAddress(usp10, "ScriptIsComplex"));
@@ -655,7 +656,10 @@ static void InitUSP()
// #i77976# USP>=1.0600 changed the need to manually align glyphs in their cells
if( nUspVersion >= 10600 )
+#endif
+ {
bManualCellAlign = false;
+ }
bUspInited = true;
}
commit 28f18b68db1af3668203730ba8cfbb66103fe669
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Sep 29 14:25:23 2015 +0200
vcl: replace alloca() with std::unique_ptr
Change-Id: I82b982895ee422bcf5a23756df4d81c89bc47636
diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx
index becb419..f6ee508 100644
--- a/vcl/generic/fontmanager/fontconfig.cxx
+++ b/vcl/generic/fontmanager/fontconfig.cxx
@@ -53,8 +53,6 @@ using namespace psp;
#include "rtl/ustrbuf.hxx"
-#include "sal/alloca.h"
-
#include <utility>
#include <algorithm>
@@ -1086,7 +1084,7 @@ bool PrintFontManager::Substitute( FontSelectPattern &rPattern, OUString& rMissi
// update rMissingCodes by removing resolved unicodes
if( !rMissingCodes.isEmpty() )
{
- sal_uInt32* pRemainingCodes = static_cast<sal_uInt32*>(alloca( rMissingCodes.getLength() * sizeof(sal_uInt32) ));
+ std::unique_ptr<sal_uInt32[]> const pRemainingCodes(new sal_uInt32[rMissingCodes.getLength()]);
int nRemainingLen = 0;
FcCharSet* unicodes;
if (!FcPatternGetCharSet(pSet->fonts[0], FC_CHARSET, 0, &unicodes))
@@ -1099,7 +1097,7 @@ bool PrintFontManager::Substitute( FontSelectPattern &rPattern, OUString& rMissi
pRemainingCodes[ nRemainingLen++ ] = nCode;
}
}
- OUString sStillMissing(pRemainingCodes, nRemainingLen);
+ OUString sStillMissing(pRemainingCodes.get(), nRemainingLen);
#if defined(ENABLE_DBUS) && defined(ENABLE_PACKAGEKIT)
if (get_xid_for_dbus())
{
diff --git a/vcl/generic/fontmanager/fontmanager.cxx b/vcl/generic/fontmanager/fontmanager.cxx
index 56917f6..b6651b7 100644
--- a/vcl/generic/fontmanager/fontmanager.cxx
+++ b/vcl/generic/fontmanager/fontmanager.cxx
@@ -59,8 +59,6 @@
#include <stdio.h>
#endif
-#include "sal/alloca.h"
-
#include <algorithm>
#include <set>
#include <unordered_set>
@@ -472,7 +470,7 @@ bool PrintFontManager::PrintFont::readAfmMetrics( MultiAtomProvider* pProvider,
// first transform the character codes to unicode
// note: this only works with single byte encodings
- sal_Unicode* pUnicodes = static_cast<sal_Unicode*>(alloca( pInfo->numOfChars * sizeof(sal_Unicode)));
+ std::unique_ptr<sal_Unicode[]> const pUnicodes(new sal_Unicode[pInfo->numOfChars]);
CharMetricInfo* pChar = pInfo->cmi;
int i;
diff --git a/vcl/source/font/PhysicalFontCollection.cxx b/vcl/source/font/PhysicalFontCollection.cxx
index 26b33ed..cd89bdf 100644
--- a/vcl/source/font/PhysicalFontCollection.cxx
+++ b/vcl/source/font/PhysicalFontCollection.cxx
@@ -18,7 +18,6 @@
*/
#include <sal/types.h>
-#include <sal/alloca.h>
#include <vector>
@@ -244,7 +243,7 @@ PhysicalFontFamily* PhysicalFontCollection::GetGlyphFallbackFont( FontSelectPatt
// there is a matching fallback in the cache
// so update rMissingCodes with codepoints not yet resolved by this fallback
int nRemainingLength = 0;
- sal_UCS4* pRemainingCodes = static_cast<sal_UCS4*>(alloca( rMissingCodes.getLength() * sizeof(sal_UCS4) ));
+ std::unique_ptr<sal_UCS4[]> const pRemainingCodes(new sal_UCS4[rMissingCodes.getLength()]);
OUString aFontName;
while( nStrIndex < rMissingCodes.getLength() )
@@ -254,7 +253,7 @@ PhysicalFontFamily* PhysicalFontCollection::GetGlyphFallbackFont( FontSelectPatt
if( !bCached || (rFontSelData.maSearchName != aFontName) )
pRemainingCodes[ nRemainingLength++ ] = cChar;
}
- rMissingCodes = OUString( pRemainingCodes, nRemainingLength );
+ rMissingCodes = OUString( pRemainingCodes.get(), nRemainingLength );
}
else
{
diff --git a/vcl/unx/generic/printer/jobdata.cxx b/vcl/unx/generic/printer/jobdata.cxx
index 85f587a..840ef7b 100644
--- a/vcl/unx/generic/printer/jobdata.cxx
+++ b/vcl/unx/generic/printer/jobdata.cxx
@@ -22,7 +22,6 @@
#include "vcl/printerinfomanager.hxx"
#include "tools/stream.hxx"
-#include <sal/alloca.h>
#include <rtl/strbuf.hxx>
#include <memory>
@@ -293,9 +292,9 @@ bool JobData::constructFromStreamBuffer( void* pData, int bytes, JobData& rJobDa
{
rJobData.m_aContext.setParser( rJobData.m_pParser );
int nBytes = bytes - aStream.Tell();
- char* pRemain = static_cast<char*>(alloca( bytes - aStream.Tell() ));
- aStream.Read( pRemain, nBytes );
- rJobData.m_aContext.rebuildFromStreamBuffer( pRemain, nBytes );
+ std::unique_ptr<char[]> pRemain(new char[bytes - aStream.Tell()]);
+ aStream.Read( pRemain.get(), nBytes );
+ rJobData.m_aContext.rebuildFromStreamBuffer( pRemain.get(), nBytes );
bContext = true;
}
}
commit 9555d03c98346e7c1dc1443c8d8c3ac1b41bf678
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Sep 29 14:18:00 2015 +0200
remove unused #include <sal/alloca.h>
Change-Id: I490841fd2c526e4ca6d6c94cc7b9dba318c932a1
diff --git a/basic/source/runtime/iosys.cxx b/basic/source/runtime/iosys.cxx
index 7be2228..5292141 100644
--- a/basic/source/runtime/iosys.cxx
+++ b/basic/source/runtime/iosys.cxx
@@ -30,8 +30,6 @@
#include "runtime.hxx"
-#include <sal/alloca.h>
-
#include <ctype.h>
#include <rtl/byteseq.hxx>
#include <rtl/textenc.h>
diff --git a/i18npool/inc/collatorImpl.hxx b/i18npool/inc/collatorImpl.hxx
index 0acd37a..e044e6d 100644
--- a/i18npool/inc/collatorImpl.hxx
+++ b/i18npool/inc/collatorImpl.hxx
@@ -27,7 +27,7 @@
#include <cppuhelper/weak.hxx>
#include <cppuhelper/implbase.hxx>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <sal/alloca.h>
+
#include <vector>
namespace com { namespace sun { namespace star { namespace i18n {
diff --git a/l10ntools/source/xmlparse.cxx b/l10ntools/source/xmlparse.cxx
index 701848f..7a4c68e 100644
--- a/l10ntools/source/xmlparse.cxx
+++ b/l10ntools/source/xmlparse.cxx
@@ -22,7 +22,6 @@
#include <cassert>
#include <stdio.h>
-#include <sal/alloca.h>
#include "helper.hxx"
#include "common.hxx"
diff --git a/sc/inc/pch/precompiled_sc.hxx b/sc/inc/pch/precompiled_sc.hxx
index 4a0a1e9..2759e07 100644
--- a/sc/inc/pch/precompiled_sc.hxx
+++ b/sc/inc/pch/precompiled_sc.hxx
@@ -561,7 +561,6 @@
#include <rtl/tencinfo.h>
#include <rtl/ustrbuf.hxx>
#include <rtl/ustring.hxx>
-#include <sal/alloca.h>
#include <sal/config.h>
#include <sal/log.hxx>
#include <sal/macros.h>
diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx
index 8973f9d..2b781e9 100644
--- a/sc/source/core/tool/address.cxx
+++ b/sc/source/core/tool/address.cxx
@@ -24,7 +24,6 @@
#include "externalrefmgr.hxx"
#include "globstr.hrc"
-#include <sal/alloca.h>
#include <osl/diagnose.h>
#include <com/sun/star/frame/XModel.hpp>
diff --git a/vcl/generic/glyphs/gcach_layout.cxx b/vcl/generic/glyphs/gcach_layout.cxx
index 26d8c11..4a8c144 100644
--- a/vcl/generic/glyphs/gcach_layout.cxx
+++ b/vcl/generic/glyphs/gcach_layout.cxx
@@ -27,7 +27,6 @@
#include <vcl/svapp.hxx>
#include <vcl/unohelp.hxx>
-#include <sal/alloca.h>
#include <rtl/instance.hxx>
#include <hb-icu.h>
diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm
index 062acec..5be7cc3 100644
--- a/vcl/osx/salframeview.mm
+++ b/vcl/osx/salframeview.mm
@@ -19,7 +19,6 @@
#include <sal/config.h>
-#include <sal/alloca.h>
#include <sal/macros.h>
#include <tools/helpers.hxx>
diff --git a/vcl/unx/generic/app/i18n_ic.cxx b/vcl/unx/generic/app/i18n_ic.cxx
index 76c37e6..e9ddd68 100644
--- a/vcl/unx/generic/app/i18n_ic.cxx
+++ b/vcl/unx/generic/app/i18n_ic.cxx
@@ -19,7 +19,6 @@
#include <stdio.h>
-#include <sal/alloca.h>
#include <osl/thread.h>
#include <prex.h>
diff --git a/vcl/unx/generic/gdi/salgdi3.cxx b/vcl/unx/generic/gdi/salgdi3.cxx
index a8ba323..aa4c5c4 100644
--- a/vcl/unx/generic/gdi/salgdi3.cxx
+++ b/vcl/unx/generic/gdi/salgdi3.cxx
@@ -33,7 +33,6 @@
#include <osl/file.hxx>
#include <osl/module.hxx>
#include <rtl/tencinfo.h>
-#include <sal/alloca.h>
#include <tools/stream.hxx>
#include <vcl/settings.hxx>
#include <vcl/sysdata.hxx>
commit e77981764a4b21e57ee8d2302715c8c1269c860c
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Sep 29 14:06:01 2015 +0200
filter: the placeware filter is not entitled to its own createTempFile
Change-Id: Id4f4c23eab4aaf4d0f42827a89ecf90364605d97
diff --git a/filter/source/placeware/tempfile.cxx b/filter/source/placeware/tempfile.cxx
index f573bad..6352418 100644
--- a/filter/source/placeware/tempfile.cxx
+++ b/filter/source/placeware/tempfile.cxx
@@ -17,95 +17,9 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <osl/file.h>
+#include <osl/file.hxx>
#include <sal/macros.h>
-#if defined( UNX)
-
-#include <stdio.h>
-#include <string.h>
-#include <osl/thread.h>
-
-oslFileError SAL_CALL my_getTempDirURL( rtl_uString** pustrTempDir )
-{
- const char *pValue = getenv( "TEMP" );
-
- if ( !pValue )
- {
- pValue = getenv( "TMP" );
- if ( !pValue )
- {
-#if defined(SOLARIS) || defined (LINUX)
- pValue = P_tmpdir;
-#else
- return osl_File_E_NOENT;
-#endif
- }
- }
-
- oslFileError error;
- rtl_uString *ustrTempPath = NULL;
-
- rtl_string2UString( &ustrTempPath, pValue, strlen( pValue ), osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
- error = osl_getFileURLFromSystemPath( ustrTempPath, pustrTempDir );
- rtl_uString_release( ustrTempPath );
-
- return error;
-}
-#else
-
-#if defined _MSC_VER
-#pragma warning(push, 1)
-#endif
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <malloc.h>
-
-#if defined _MSC_VER
-#pragma warning(pop)
-#endif
-
-oslFileError SAL_CALL my_getTempDirURL( rtl_uString** pustrTempDir )
-{
- WCHAR szBuffer[MAX_PATH];
- LPWSTR lpBuffer = szBuffer;
- DWORD nBufferLength = SAL_N_ELEMENTS(szBuffer) - 1;
-
- DWORD nLength;
- oslFileError error;
-
- do
- {
- nLength = GetTempPathW( SAL_N_ELEMENTS(szBuffer), lpBuffer );
- if ( nLength > nBufferLength )
- {
- nLength++;
- lpBuffer = (LPWSTR)alloca( sizeof(WCHAR) * nLength );
- nBufferLength = nLength - 1;
- }
- } while ( nLength > nBufferLength );
-
- if ( nLength )
- {
- rtl_uString *ustrTempPath = NULL;
-
- if ( '\\' == lpBuffer[nLength-1] )
- lpBuffer[nLength-1] = 0;
-
- rtl_uString_newFromStr( &ustrTempPath, reinterpret_cast<const sal_Unicode*>(lpBuffer) );
-
- error = osl_getFileURLFromSystemPath( ustrTempPath, pustrTempDir );
-
- rtl_uString_release( ustrTempPath );
- }
- else
- error = GetLastError() == ERROR_SUCCESS ? osl_File_E_None : osl_File_E_INVAL;
-
- return error;
-}
-#endif
-
#include "tempfile.hxx"
PlaceWareTempFile::PlaceWareTempFile( const OUString& rTempFileURL )
@@ -125,38 +39,10 @@ OUString PlaceWareTempFile::createTempFileURL()
{
OUString aTempFileURL;
- const sal_uInt32 nRadix = 26;
-
- OUString aTempDirURL;
- /* oslFileError nRC = */ my_getTempDirURL( &aTempDirURL.pData );
-
- static sal_uInt32 u = osl_getGlobalTimer();
- for ( sal_uInt32 nOld = u; ++u != nOld; )
- {
- u %= (nRadix*nRadix*nRadix);
- OUString aTmp( aTempDirURL );
- if( !aTmp.endsWith("/") )
- aTmp += "/";
- aTmp += OUString::number( (unsigned) u, nRadix );
- aTmp += ".tmp";
-
- osl::File aFile( aTmp );
- osl::FileBase::RC err = aFile.open(osl_File_OpenFlag_Create);
- if ( err == FileBase::E_None )
- {
- aTempFileURL = aTmp;
- aFile.close();
- break;
- }
- else if ( err != FileBase::E_EXIST )
- {
- // if f.e. name contains invalid chars stop trying to create files
- break;
- }
- }
+ ::osl::File::createTempFile(nullptr, nullptr, &aTempFileURL);
+ // TODO: there does not appear to be any way to report an error here?
return aTempFileURL;
}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 16e3daba9158bfa66050502034bc082583612a40
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Sep 29 13:48:03 2015 +0200
vcl: replace alloca() with std::unique_ptr
Change-Id: If0f44ac761afdf50a8e6f5c77023ae5d74fdcad9
diff --git a/vcl/source/outdev/text.cxx b/vcl/source/outdev/text.cxx
index ceffc84..f0a248d 100644
--- a/vcl/source/outdev/text.cxx
+++ b/vcl/source/outdev/text.cxx
@@ -23,7 +23,6 @@
#include <cmath>
#include <sal/types.h>
-#include <sal/alloca.h>
#include <basegfx/matrix/b2dhommatrix.hxx>
@@ -1019,12 +1018,12 @@ long OutputDevice::GetTextArray( const OUString& rStr, long* pDXAry,
if( !pSalLayout )
return 0;
#if VCL_FLOAT_DEVICE_PIXEL
- DeviceCoordinate* pDXPixelArray = NULL;
+ std::unique_ptr<DeviceCoordinate[]> pDXPixelArray;
if(pDXAry)
{
- pDXPixelArray = static_cast<DeviceCoordinate*>(alloca(nLen * sizeof(DeviceCoordinate)));
+ pDXPixelArray.reset(new DeviceCoordinate[nLen]);
}
- DeviceCoordinate nWidth = pSalLayout->FillDXArray( pDXPixelArray );
+ DeviceCoordinate nWidth = pSalLayout->FillDXArray( pDXPixelArray.get() );
int nWidthFactor = pSalLayout->GetUnitsPerPixel();
pSalLayout->Release();
@@ -1346,7 +1345,8 @@ SalLayout* OutputDevice::ImplLayout(const OUString& rOrigStr,
pLayoutCache = nullptr; // don't use cache with modified string!
}
DeviceCoordinate nPixelWidth = (DeviceCoordinate)nLogicalWidth;
- DeviceCoordinate* pDXPixelArray = NULL;
+ std::unique_ptr<DeviceCoordinate[]> xDXPixelArray;
+ DeviceCoordinate* pDXPixelArray(nullptr);
if( nLogicalWidth && mbMap )
{
nPixelWidth = LogicWidthToDeviceCoordinate( nLogicalWidth );
@@ -1357,7 +1357,8 @@ SalLayout* OutputDevice::ImplLayout(const OUString& rOrigStr,
if(mbMap)
{
// convert from logical units to font units using a temporary array
- pDXPixelArray = static_cast<DeviceCoordinate*>(alloca( nLen * sizeof(DeviceCoordinate) ));
+ xDXPixelArray.reset(new DeviceCoordinate[nLen]);
+ pDXPixelArray = xDXPixelArray.get();
// using base position for better rounding a.k.a. "dancing characters"
DeviceCoordinate nPixelXOfs = LogicWidthToDeviceCoordinate( rLogicalPos.X() );
for( int i = 0; i < nLen; ++i )
@@ -1368,7 +1369,8 @@ SalLayout* OutputDevice::ImplLayout(const OUString& rOrigStr,
else
{
#if VCL_FLOAT_DEVICE_PIXEL
- pDXPixelArray = static_cast<DeviceCoordinate*>(alloca( nLen * sizeof(DeviceCoordinate) ));
+ xDXPixelArray.reset(new DeviceCoordinate[nLen]);
+ pDXPixelArray = xDXPixelArray.get();
for( int i = 0; i < nLen; ++i )
{
pDXPixelArray[i] = pDXArray[i];
@@ -1693,8 +1695,8 @@ void OutputDevice::ImplDrawText( OutputDevice& rTargetDevice, const Rectangle& r
long nMnemonicY;
DeviceCoordinate nMnemonicWidth;
- long* pCaretXArray = static_cast<long*>(alloca( 2 * sizeof(long) * nLineLen ));
- /*sal_Bool bRet =*/ _rLayout.GetCaretPositions( aStr, pCaretXArray,
+ std::unique_ptr<long[]> const pCaretXArray(new long[2 * nLineLen]);
+ /*sal_Bool bRet =*/ _rLayout.GetCaretPositions( aStr, pCaretXArray.get(),
nIndex, nLineLen );
long lc_x1 = pCaretXArray[2*(nMnemonicPos - nIndex)];
long lc_x2 = pCaretXArray[2*(nMnemonicPos - nIndex)+1];
@@ -1762,8 +1764,8 @@ void OutputDevice::ImplDrawText( OutputDevice& rTargetDevice, const Rectangle& r
DeviceCoordinate nMnemonicWidth = 0;
if ( nMnemonicPos != -1 )
{
- long* pCaretXArray = static_cast<long*>(alloca( 2 * sizeof(long) * aStr.getLength() ));
- /*sal_Bool bRet =*/ _rLayout.GetCaretPositions( aStr, pCaretXArray, 0, aStr.getLength() );
+ std::unique_ptr<long[]> const pCaretXArray(new long[2 * aStr.getLength()]);
+ /*sal_Bool bRet =*/ _rLayout.GetCaretPositions( aStr, pCaretXArray.get(), 0, aStr.getLength() );
long lc_x1 = pCaretXArray[2*(nMnemonicPos)];
long lc_x2 = pCaretXArray[2*(nMnemonicPos)+1];
nMnemonicWidth = rTargetDevice.LogicWidthToDeviceCoordinate( std::abs(lc_x1 - lc_x2) );
@@ -2213,8 +2215,8 @@ void OutputDevice::DrawCtrlText( const Point& rPos, const OUString& rStr,
nMnemonicPos = nLen-1;
}
- long* pCaretXArray = static_cast<long*>(alloca( 2 * sizeof(long) * nLen ));
- /*sal_Bool bRet =*/ GetCaretPositions( aStr, pCaretXArray, nIndex, nLen );
+ std::unique_ptr<long[]> const pCaretXArray(new long[2 * nLen]);
+ /*sal_Bool bRet =*/ GetCaretPositions( aStr, pCaretXArray.get(), nIndex, nLen );
long lc_x1 = pCaretXArray[ 2*(nMnemonicPos - nIndex) ];
long lc_x2 = pCaretXArray[ 2*(nMnemonicPos - nIndex)+1 ];
nMnemonicWidth = ::abs((int)(lc_x1 - lc_x2));
commit 2c9a1811fcd7f155226b315fc91811ba195c2c57
Author: Michael Stahl <mstahl at redhat.com>
Date: Mon Sep 28 23:42:27 2015 +0200
vcl: replace alloca() with std::unique_ptr
Change-Id: I73d27e0e5a8ad0a02579c43f3fd479cb374d6bbd
diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx
index 3fcf3c6..04cbdd2 100644
--- a/vcl/source/gdi/sallayout.cxx
+++ b/vcl/source/gdi/sallayout.cxx
@@ -25,7 +25,6 @@
#include <cstdio>
#include <math.h>
-#include <sal/alloca.h>
#include <salgdi.hxx>
#include <sallayout.hxx>
@@ -995,7 +994,7 @@ void GenericSalLayout::ApplyDXArray( ImplLayoutArgs& rArgs )
// determine cluster boundaries and x base offset
const int nCharCount = rArgs.mnEndCharPos - rArgs.mnMinCharPos;
- int* pLogCluster = static_cast<int*>(alloca( nCharCount * sizeof(int) ));
+ std::unique_ptr<int[]> const pLogCluster(new int[nCharCount]);
size_t i;
int n,p;
long nBasePointX = -1;
@@ -1030,7 +1029,7 @@ void GenericSalLayout::ApplyDXArray( ImplLayoutArgs& rArgs )
}
// calculate adjusted cluster widths
- long* pNewGlyphWidths = static_cast<long*>(alloca( m_GlyphItems.size() * sizeof(long) ));
+ std::unique_ptr<long[]> const pNewGlyphWidths(new long[m_GlyphItems.size()]);
for( i = 0; i < m_GlyphItems.size(); ++i )
pNewGlyphWidths[ i ] = 0;
@@ -1294,8 +1293,8 @@ void GenericSalLayout::GetCaretPositions( int nMaxIndex, long* pCaretXArray ) co
sal_Int32 GenericSalLayout::GetTextBreak( DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra, int nFactor ) const
{
int nCharCapacity = mnEndCharPos - mnMinCharPos;
- DeviceCoordinate* pCharWidths = static_cast<DeviceCoordinate*>(alloca( nCharCapacity * sizeof(DeviceCoordinate) ));
- if( !GetCharWidths( pCharWidths ) )
+ std::unique_ptr<DeviceCoordinate[]> const pCharWidths(new DeviceCoordinate[nCharCapacity]);
+ if (!GetCharWidths(pCharWidths.get()))
return -1;
DeviceCoordinate nWidth = 0;
@@ -1929,13 +1928,13 @@ sal_Int32 MultiSalLayout::GetTextBreak( DeviceCoordinate nMaxWidth, DeviceCoordi
return mpLayouts[0]->GetTextBreak( nMaxWidth, nCharExtra, nFactor );
int nCharCount = mnEndCharPos - mnMinCharPos;
- DeviceCoordinate* pCharWidths = static_cast<DeviceCoordinate*>(alloca( 2*nCharCount * sizeof(DeviceCoordinate) ));
- mpLayouts[0]->FillDXArray( pCharWidths );
+ std::unique_ptr<DeviceCoordinate[]> const pCharWidths(new DeviceCoordinate[2 * nCharCount]);
+ mpLayouts[0]->FillDXArray( pCharWidths.get() );
for( int n = 1; n < mnLevel; ++n )
{
SalLayout& rLayout = *mpLayouts[ n ];
- rLayout.FillDXArray( pCharWidths + nCharCount );
+ rLayout.FillDXArray( &pCharWidths[nCharCount] );
double fUnitMul = mnUnitsPerPixel;
fUnitMul /= rLayout.GetUnitsPerPixel();
for( int i = 0; i < nCharCount; ++i )
@@ -1963,19 +1962,19 @@ DeviceCoordinate MultiSalLayout::FillDXArray( DeviceCoordinate* pCharWidths ) co
DeviceCoordinate nMaxWidth = 0;
// prepare merging of fallback levels
- DeviceCoordinate* pTempWidths = NULL;
+ std::unique_ptr<DeviceCoordinate[]> pTempWidths;
const int nCharCount = mnEndCharPos - mnMinCharPos;
if( pCharWidths )
{
for( int i = 0; i < nCharCount; ++i )
pCharWidths[i] = 0;
- pTempWidths = static_cast<DeviceCoordinate*>(alloca( nCharCount * sizeof(DeviceCoordinate) ));
+ pTempWidths.reset(new DeviceCoordinate[nCharCount]);
}
for( int n = mnLevel; --n >= 0; )
{
// query every fallback level
- DeviceCoordinate nTextWidth = mpLayouts[n]->FillDXArray( pTempWidths );
+ DeviceCoordinate nTextWidth = mpLayouts[n]->FillDXArray( pTempWidths.get() );
if( !nTextWidth )
continue;
// merge results from current level
@@ -2011,10 +2010,10 @@ void MultiSalLayout::GetCaretPositions( int nMaxIndex, long* pCaretXArray ) cons
if( mnLevel > 1 )
{
- long* pTempPos = static_cast<long*>(alloca( nMaxIndex * sizeof(long) ));
+ std::unique_ptr<long[]> const pTempPos(new long[nMaxIndex]);
for( int n = 1; n < mnLevel; ++n )
{
- mpLayouts[ n ]->GetCaretPositions( nMaxIndex, pTempPos );
+ mpLayouts[ n ]->GetCaretPositions( nMaxIndex, pTempPos.get() );
double fUnitMul = mnUnitsPerPixel;
fUnitMul /= mpLayouts[n]->GetUnitsPerPixel();
for( int i = 0; i < nMaxIndex; ++i )
commit 8f3d411f46e1bdd1543633cf9b5a729cf89f79f3
Author: Michael Stahl <mstahl at redhat.com>
Date: Mon Sep 28 23:23:47 2015 +0200
toolkit: convert alloca() to std::unique_ptr
Change-Id: Ie50b4a1a189fffdaa6a0b26040c2e7c4cc42cd69
diff --git a/toolkit/source/awt/vclxfont.cxx b/toolkit/source/awt/vclxfont.cxx
index a4b0c73..acdae57 100644
--- a/toolkit/source/awt/vclxfont.cxx
+++ b/toolkit/source/awt/vclxfont.cxx
@@ -26,7 +26,6 @@
#include <cppuhelper/queryinterface.hxx>
#include <rtl/uuid.h>
#include <rtl/ustring.h>
-#include <sal/alloca.h>
#include <vcl/outdev.hxx>
#include <vcl/svapp.hxx>
@@ -179,8 +178,8 @@ sal_Int32 VCLXFont::getStringWidthArray( const OUString& str, ::com::sun::star::
{
vcl::Font aOldFont = pOutDev->GetFont();
pOutDev->SetFont( maFont );
- long* pDXA = static_cast<long*>(alloca(str.getLength() * sizeof(long)));
- nRet = pOutDev->GetTextArray( str, pDXA );
+ std::unique_ptr<long []> pDXA(new long[str.getLength()]);
+ nRet = pOutDev->GetTextArray( str, pDXA.get() );
rDXArray = ::com::sun::star::uno::Sequence<sal_Int32>( str.getLength() );
for(int i = 0; i < str.getLength(); i++)
{
diff --git a/toolkit/source/awt/vclxgraphics.cxx b/toolkit/source/awt/vclxgraphics.cxx
index 482e29c..4e2268f 100644
--- a/toolkit/source/awt/vclxgraphics.cxx
+++ b/toolkit/source/awt/vclxgraphics.cxx
@@ -26,7 +26,6 @@
#include <cppuhelper/typeprovider.hxx>
#include <cppuhelper/queryinterface.hxx>
#include <rtl/uuid.h>
-#include <sal/alloca.h>
#include <vcl/svapp.hxx>
#include <vcl/outdev.hxx>
@@ -497,12 +496,12 @@ void VCLXGraphics::drawTextArray( sal_Int32 x, sal_Int32 y, const OUString& rTex
if( mpOutputDevice )
{
InitOutputDevice( InitOutDevFlags::CLIPREGION|InitOutDevFlags::RASTEROP|InitOutDevFlags::COLORS|InitOutDevFlags::FONT );
- long* pDXA = static_cast<long*>(alloca(rText.getLength() * sizeof(long)));
+ std::unique_ptr<long []> pDXA(new long[rText.getLength()]);
for(int i = 0; i < rText.getLength(); i++)
{
pDXA[i] = rLongs[i];
}
- mpOutputDevice->DrawTextArray( Point( x, y ), rText, pDXA );
+ mpOutputDevice->DrawTextArray( Point( x, y ), rText, pDXA.get() );
}
}
commit 54bb97aa30d29865bf4b9826db7c7ec0607e7992
Author: Michael Stahl <mstahl at redhat.com>
Date: Mon Sep 28 23:14:53 2015 +0200
sax: remove obsolete XML_UNICODE code
Change-Id: Ib5b9b7dc01b713554cf33f58f8fe2f97cb32c369
diff --git a/sax/source/expatwrap/sax_expat.cxx b/sax/source/expatwrap/sax_expat.cxx
index c02ee87..51c997f 100644
--- a/sax/source/expatwrap/sax_expat.cxx
+++ b/sax/source/expatwrap/sax_expat.cxx
@@ -18,7 +18,6 @@
*/
#include <stdlib.h>
#include <string.h>
-#include <sal/alloca.h>
#include <cassert>
#include <vector>
@@ -53,47 +52,8 @@ using namespace ::com::sun::star::io;
namespace {
-// Useful macros for correct String conversion depending on the chosen expat-mode
-#ifdef XML_UNICODE
-OUString XmlNChar2OUString( const XML_Char *p , int nLen )
-{
- if( p ) {
- if( sizeof( sal_Unicode ) == sizeof( XML_Char ) )
- {
- return OUString( (sal_Unicode*)p,nLen);
- }
- else
- {
- sal_Unicode *pWchar = (sal_Unicode *)alloca( sizeof( sal_Unicode ) * nLen );
- for( int n = 0 ; n < nLen ; n++ ) {
- pWchar[n] = (sal_Unicode) p[n];
- }
- return OUString( pWchar , nLen );
- }
- }
- else {
- return OUString();
- }
-}
-
-OUString XmlChar2OUString( const XML_Char *p )
-{
- if( p ) {
- int nLen;
- for( nLen = 0 ; p[nLen] ; nLen ++ )
- ;
- return XmlNChar2OUString( p , nLen );
- }
- else return OUString();
-}
-
-
-#define XML_CHAR_TO_OUSTRING(x) XmlChar2OUString(x)
-#define XML_CHAR_N_TO_USTRING(x,n) XmlNChar2OUString(x,n)
-#else
#define XML_CHAR_TO_OUSTRING(x) OUString(x , strlen( x ), RTL_TEXTENCODING_UTF8)
#define XML_CHAR_N_TO_USTRING(x,n) OUString(x,n, RTL_TEXTENCODING_UTF8 )
-#endif
/*
commit 810257500200391de71c8591ce24b8a942249bd5
Author: Michael Stahl <mstahl at redhat.com>
Date: Mon Sep 28 23:06:51 2015 +0200
vcl: remove alloca() in UniscribeLayout::GetCaretPositions()
Change-Id: I0caab3b69b10aba6a5d45a11f8e9724b4d3c6d83
diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx
index b3562ee..454ecae 100644
--- a/vcl/win/source/gdi/winlayout.cxx
+++ b/vcl/win/source/gdi/winlayout.cxx
@@ -1873,7 +1873,7 @@ void UniscribeLayout::GetCaretPositions( int nMaxIdx, long* pCaretXArray ) const
int i;
for( i = 0; i < nMaxIdx; ++i )
pCaretXArray[ i ] = -1;
- long* const pGlyphPos = (long*)alloca( (mnGlyphCount+1) * sizeof(long) );
+ std::unique_ptr<long[]> const pGlyphPos = new long[mnGlyphCount + 1];
for( i = 0; i <= mnGlyphCount; ++i )
pGlyphPos[ i ] = -1;
commit d70302ef5c18207a78f6c81aed85c12260f73820
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Sep 29 14:56:24 2015 +0200
basic: more plausible build fix than e5a8eb9e
Change-Id: I26fd8a76a17386de73fa12058509ccee7e768512
diff --git a/basic/source/sbx/sbxvar.cxx b/basic/source/sbx/sbxvar.cxx
index 36d459a..e551af2 100644
--- a/basic/source/sbx/sbxvar.cxx
+++ b/basic/source/sbx/sbxvar.cxx
@@ -408,7 +408,7 @@ void SbxVariable::SetParent( SbxObject* p )
{
#ifdef DBG_UTIL
// Will the parent of a SbxObject be set?
- if (p)
+ if (p && dynamic_cast<SbxObject*>(this))
{
// then this had to be a child of the new parent
bool bFound = false;
More information about the Libreoffice-commits
mailing list