summaryrefslogtreecommitdiff
path: root/vcl/unx/generic
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-09-11 22:49:36 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-09-12 09:10:03 +0100
commit06e0aff60a7ac8b3a92253ff30dec55f71e437de (patch)
treee5f39ed7c3138b68b2199e2ac8931b42e90d9957 /vcl/unx/generic
parent90e9a26aa5be3cbb286fd8363623284d49b6edc9 (diff)
can return a ref, not a pointer, and make local static instead of global leak
Diffstat (limited to 'vcl/unx/generic')
-rw-r--r--vcl/unx/generic/printergfx/psputil.cxx22
-rw-r--r--vcl/unx/generic/printergfx/psputil.hxx2
-rw-r--r--vcl/unx/generic/printergfx/text_gfx.cxx4
3 files changed, 14 insertions, 14 deletions
diff --git a/vcl/unx/generic/printergfx/psputil.cxx b/vcl/unx/generic/printergfx/psputil.cxx
index 9a5de44960e6..e0f82d3fff6a 100644
--- a/vcl/unx/generic/printergfx/psputil.cxx
+++ b/vcl/unx/generic/printergfx/psputil.cxx
@@ -28,13 +28,11 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_vcl.hxx"
-
#include <string.h>
-
+#include <tools/debug.hxx>
+#include <rtl/instance.hxx>
#include "psputil.hxx"
-#include "tools/debug.hxx"
-
namespace psp {
/*
@@ -254,15 +252,17 @@ ConverterFactory::Convert (const sal_Unicode *pText, int nTextLen,
return nSize;
}
-ConverterFactory*
-GetConverterFactory ()
+namespace
{
- static ConverterFactory* pCvt = NULL;
-
- if (pCvt == NULL)
- pCvt = new ConverterFactory;
+ class theConverterFactory
+ : public rtl::Static<ConverterFactory, theConverterFactory>
+ {
+ };
+}
- return pCvt;
+ConverterFactory& GetConverterFactory()
+{
+ return theConverterFactory::get();
}
diff --git a/vcl/unx/generic/printergfx/psputil.hxx b/vcl/unx/generic/printergfx/psputil.hxx
index 878fd9c7791a..2aaffda6519f 100644
--- a/vcl/unx/generic/printergfx/psputil.hxx
+++ b/vcl/unx/generic/printergfx/psputil.hxx
@@ -71,7 +71,7 @@ private:
std::map< rtl_TextEncoding, rtl_UnicodeToTextConverter > m_aConverters;
};
-ConverterFactory* GetConverterFactory ();
+ConverterFactory& GetConverterFactory ();
} /* namespace psp */
diff --git a/vcl/unx/generic/printergfx/text_gfx.cxx b/vcl/unx/generic/printergfx/text_gfx.cxx
index 3cad66ee948c..14dd8c332d27 100644
--- a/vcl/unx/generic/printergfx/text_gfx.cxx
+++ b/vcl/unx/generic/printergfx/text_gfx.cxx
@@ -583,8 +583,8 @@ PrinterGfx::LicenseWarning(const Point& rPoint, const sal_Unicode* pStr,
sal_Size nSize = 4 * nLen;
sal_uChar* pBuffer = (sal_uChar*)alloca (nSize* sizeof(sal_uChar));
- ConverterFactory* pCvt = GetConverterFactory ();
- nSize = pCvt->Convert (pStr, nLen, pBuffer, nSize, RTL_TEXTENCODING_ISO_8859_1);
+ ConverterFactory &rCvt = GetConverterFactory ();
+ nSize = rCvt.Convert (pStr, nLen, pBuffer, nSize, RTL_TEXTENCODING_ISO_8859_1);
PSMoveTo (rPoint);
PSShowText (pBuffer, nLen, nSize, pDeltaArray);