[Libreoffice-commits] .: sal/inc sal/rtl sal/util tools/inc

2012-04-02 Thread Michael Meeks
 sal/inc/rtl/ustrbuf.h  |   28 +
 sal/inc/rtl/ustrbuf.hxx|7 ++
 sal/rtl/source/strimp.hxx  |   18 
 sal/rtl/source/string.cxx  |5 
 sal/rtl/source/strtmpl.cxx |8 ---
 sal/rtl/source/uri.cxx |2 +
 sal/rtl/source/ustrbuf.cxx |   50 -
 sal/rtl/source/ustring.cxx |   15 -
 sal/util/sal.map   |2 +
 tools/inc/tools/string.hxx |4 ++-
 10 files changed, 89 insertions(+), 50 deletions(-)

New commits:
commit 1426d4432c59ef42f28642ec63e57517223eb32d
Author: Michael Meeks michael.me...@suse.com
Date:   Fri Mar 30 18:27:58 2012 +0100

sal: expose more stringbuffer related instrumentation points

Avoid ref/unref pair in makeStringAndClear, hook into the
stringbuffer-like 'String' class to expose it's conversion to
immutable strings, and fixup misc. missing instrumentation.

diff --git a/sal/inc/rtl/ustrbuf.h b/sal/inc/rtl/ustrbuf.h
index 0863da0..1051d0d 100644
--- a/sal/inc/rtl/ustrbuf.h
+++ b/sal/inc/rtl/ustrbuf.h
@@ -179,6 +179,34 @@ SAL_DLLPUBLIC void SAL_CALL rtl_uStringbuffer_remove(
sal_Int32 start,
sal_Int32 len );
 
+/**
+Returns an immutable rtl_uString object, while clearing the string buffer.
+
+This method is primarily used to allow these completed
+string allocation events to be traced.
+
+@param  ppThis  The string, on that the operation should take place
+@param  nCapacity   pointer to the capacity of the string buffer
+
+@since LibreOffice 3.6
+ */
+SAL_DLLPUBLIC rtl_uString * SAL_CALL rtl_uStringBuffer_makeStringAndClear(
+/*inout*/ rtl_uString ** ppThis,
+sal_Int32 *nCapacity );
+
+/**
+References and returns an immutable rtl_uString object, from a mutable
+string-buffer object.
+
+This method is primarily used to allow legacy 'String' class
+conversions to OUString to be accurately traced.
+
+@param  pThis  The string, on that the operation should take place
+
+@since LibreOffice 3.6
+ */
+SAL_DLLPUBLIC rtl_uString * SAL_CALL rtl_uStringBuffer_refReturn( rtl_uString 
*pThis );
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/sal/inc/rtl/ustrbuf.hxx b/sal/inc/rtl/ustrbuf.hxx
index 99afe44..02a507c 100644
--- a/sal/inc/rtl/ustrbuf.hxx
+++ b/sal/inc/rtl/ustrbuf.hxx
@@ -181,10 +181,9 @@ public:
  */
 OUString makeStringAndClear()
 {
-OUString aRet( pData );
-rtl_uString_new(pData);
-nCapacity = 0;
-return aRet;
+return OUString(
+  rtl_uStringBuffer_makeStringAndClear( pData, nCapacity ),
+  SAL_NO_ACQUIRE );
 }
 
 /**
diff --git a/sal/rtl/source/strimp.hxx b/sal/rtl/source/strimp.hxx
index a9e5a38..82f7f41 100644
--- a/sal/rtl/source/strimp.hxx
+++ b/sal/rtl/source/strimp.hxx
@@ -54,6 +54,24 @@ sal_Int16 rtl_ImplGetDigit( sal_Unicode ch, sal_Int16 nRadix 
);
 
 sal_Bool rtl_ImplIsWhitespace( sal_Unicode c );
 
+// string lifetime instrumentation / diagnostics
+#if 0
+#  include rtl/ustring.hxx
+#  define RTL_LOG_STRING_NEW(s)  \
+  do { 
\
+  fprintf (stderr, +%s\n,
\
+   rtl::OUStringToOString(s, RTL_TEXTENCODING_UTF8).getStr()); 
\
+  } while (0)
+#  define RTL_LOG_STRING_DELETE(s)   \
+  do { 
\
+  fprintf (stderr, -%s\n,
\
+   rtl::OUStringToOString(s, RTL_TEXTENCODING_UTF8).getStr()); 
\
+  } while (0)
+#else
+#  define RTL_LOG_STRING_NEW(s)
+#  define RTL_LOG_STRING_DELETE(s)
+#endif
+
 #endif /* INCLUDED_RTL_SOURCE_STRIMP_HXX */
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/string.cxx b/sal/rtl/source/string.cxx
index 9c5393f..42c8ae2 100644
--- a/sal/rtl/source/string.cxx
+++ b/sal/rtl/source/string.cxx
@@ -71,6 +71,11 @@ static rtl_String const aImplEmpty_rtl_String =
 #define IMPL_RTL_STRINGDATA rtl_String
 #define IMPL_RTL_EMPTYSTRINGaImplEmpty_rtl_String
 
+#undef RTL_LOG_STRING_NEW
+#define RTL_LOG_STRING_NEW(s)
+#undef RTL_LOG_STRING_DELETE
+#define RTL_LOG_STRING_DELETE(s)
+
 /* === */
 
 /* Include String/UString template code */
diff --git a/sal/rtl/source/strtmpl.cxx b/sal/rtl/source/strtmpl.cxx
index 8e1de8b..2a33907 100644
--- a/sal/rtl/source/strtmpl.cxx
+++ b/sal/rtl/source/strtmpl.cxx
@@ -49,12 +49,6 @@ inline void rtl_str_ImplCopy( IMPL_RTL_STRCODE* pDest,
 }
 */
 
-// for instrumentation / diagnostics
-#ifndef 

[Libreoffice-commits] .: sal/inc sal/rtl

2011-11-30 Thread Stephan Bergmann
 sal/inc/internal/once.h |   82 
 sal/rtl/source/alloc_arena.cxx  |1 
 sal/rtl/source/alloc_cache.cxx  |1 
 sal/rtl/source/alloc_global.cxx |1 
 sal/rtl/source/locale.cxx   |1 
 5 files changed, 86 deletions(-)

New commits:
commit cbcf00ad04e8e1457f5563a25b6f9cf68e3f4a24
Author: Stephan Bergmann sberg...@redhat.com
Date:   Wed Nov 30 09:10:17 2011 +0100

Removed unused sal/inc/internal/once.h.

diff --git a/sal/inc/internal/once.h b/sal/inc/internal/once.h
deleted file mode 100644
index 45f9c37..000
--- a/sal/inc/internal/once.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * http://www.openoffice.org/license.html
- * for a copy of the LGPLv3 License.
- *
- /
-
-#ifndef INCLUDED_SAL_INTERNAL_ONCE_H
-#define INCLUDED_SAL_INTERNAL_ONCE_H
-
-/** sal_once_type
- *  (platform dependent)
- */
-
-#if defined(SAL_UNX)
-
-#include pthread.h
-
-typedef pthread_once_t sal_once_type;
-
-#define SAL_ONCE_INIT PTHREAD_ONCE_INIT
-#define SAL_ONCE(once, init) pthread_once((once), (init))
-
-#elif defined(SAL_W32)
-
-#define WIN32_LEAN_AND_MEAN
-#pragma warning(push,1) /* disable warnings within system headers */
-#include windows.h
-#pragma warning(pop)
-
-typedef struct sal_once_st sal_once_type;
-struct sal_once_st
-{
-LONG volatile m_done;
-LONG volatile m_lock;
-};
-
-#define SAL_ONCE_INIT { 0, 0 }
-#define SAL_ONCE(once, init) \
-{ \
-sal_once_type * control = (once); \
-if (!(control-m_done)) \
-{ \
-while (InterlockedExchange((control-m_lock), 1) == 1) Sleep(0); \
-if (!(control-m_done)) \
-{ \
-void (*init_routine)(void) = (init); \
-(*init_routine)(); \
-control-m_done = 1; \
-} \
-InterlockedExchange((control-m_lock), 0); \
-} \
-}
-
-#else
-#error Unknown platform
-#endif /* SAL_UNX | SAL_W32 */
-
-#endif /* INCLUDED_SAL_INTERNAL_ONCE_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/alloc_arena.cxx b/sal/rtl/source/alloc_arena.cxx
index 20ee962..03c7f47 100644
--- a/sal/rtl/source/alloc_arena.cxx
+++ b/sal/rtl/source/alloc_arena.cxx
@@ -30,7 +30,6 @@
 #include alloc_arena.hxx
 
 #include alloc_impl.hxx
-#include internal/once.h
 #include internal/rtllifecycle.h
 #include sal/macros.h
 #include osl/diagnose.h
diff --git a/sal/rtl/source/alloc_cache.cxx b/sal/rtl/source/alloc_cache.cxx
index a1d8d54..0769b8e 100644
--- a/sal/rtl/source/alloc_cache.cxx
+++ b/sal/rtl/source/alloc_cache.cxx
@@ -29,7 +29,6 @@
 #include alloc_cache.hxx
 #include alloc_impl.hxx
 #include alloc_arena.hxx
-#include internal/once.h
 #include internal/rtllifecycle.h
 #include sal/macros.h
 #include osl/diagnose.h
diff --git a/sal/rtl/source/alloc_global.cxx b/sal/rtl/source/alloc_global.cxx
index e48fdd1..c0de496 100644
--- a/sal/rtl/source/alloc_global.cxx
+++ b/sal/rtl/source/alloc_global.cxx
@@ -51,7 +51,6 @@ static void determine_alloc_mode()
  *
  * = */
 
-#include internal/once.h
 #include sal/macros.h
 
 /* = *
diff --git a/sal/rtl/source/locale.cxx b/sal/rtl/source/locale.cxx
index 1d975ad..885b139 100644
--- a/sal/rtl/source/locale.cxx
+++ b/sal/rtl/source/locale.cxx
@@ -31,7 +31,6 @@
 #include osl/diagnose.h
 #include rtl/alloc.h
 
-#include internal/once.h
 #include internal/rtllifecycle.h
 
 static sal_Int32 RTL_HASHTABLE_SIZE[] =
___
Libreoffice-commits mailing list
Libreoffice-commits@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits