Commit Graph

112 Commits

Author SHA1 Message Date
Dan Winship
78a8aecbb3 g_logv: only expand the message once
Hoist the g_strdup_printf()'ing out of the loop, since the message is
the same for every handler that gets called.

https://bugzilla.gnome.org/show_bug.cgi?id=679556
2012-08-20 13:49:06 -04:00
Robert Ancell
4143842eb4 Add missing allow-none annotations for function parameters.
Found using:
find . -name '*.c' | xargs grep 'or %NULL' | grep ' \* @' | grep -v '@error' | grep -v allow-none
2012-03-31 20:34:28 +11:00
Ryan Lortie
fbbdf98668 g_log: mask log level before checking prefix flags
We check if the log level is in the "prefixed" list by checking it
against the g_log_msg_prefix bitfield.

Unfortunately we were failing to mask by G_LOG_LEVEL_MASK first, so if
the FATAL bit was set (for example) then it would never match.  This was
the case for g_error().

https://bugzilla.gnome.org/show_bug.cgi?id=672026
2012-03-13 20:15:21 -04:00
Stef Walter
7e92997539 documentation fixes
Fixes for gtk-doc warnings.

http://bugzilla.gnome.org/show_bug.cgi?id=66469

https://bugzilla.gnome.org/show_bug.cgi?id=664699
2011-12-13 23:01:51 -05:00
Matthias Clasen
1a08591c3a Deal gracefully with NULL log domains 2011-11-16 21:42:28 -05:00
Matthias Clasen
d2d62ecfcd Make the default log handler more useful
We make the default log handler only print default and informational
messages if the log domain is explicitly requested.

https://bugzilla.gnome.org/show_bug.cgi?id=661926
2011-11-03 01:50:29 -04:00
Ryan Lortie
2a98cc635e The usual docs unbreaking... 2011-10-19 15:07:22 -04:00
Matthias Clasen
6c1d768f7b Also clean up includes 2011-10-16 18:43:22 -04:00
Matthias Clasen
6ab1c77270 Pass correct data to fatal log handlers
This was pointed out by John Ralls in bug 653052.
He also provided the test case.
2011-10-16 16:24:20 -04:00
Matthias Clasen
6613b2f8fd Move more docs inline 2011-10-12 22:29:53 -04:00
Ryan Lortie
2e5cb6f522 win32 fixes from g_thread_init() deprecation
I can't even begin to imagine how these fell through the cracks...
2011-10-04 15:44:48 -04:00
Ryan Lortie
47444dacc0 Deprecate g_thread_init()
Move the last few things that needed thread-safe initialisation to a
global ctor.

https://bugzilla.gnome.org/show_bug.cgi?id=660744
2011-10-04 15:31:49 -04:00
Ryan Lortie
310c3ed4cc Clean up process of calling g_debug_init()
Make sure that it calls absolutely nothing that may ever recurse back
into GLib again:

  - g_ascii_strcasecmp() is unsafe because it has g_return_if_fail() at
    the top.  As far as I know, the only ASCII character letter that
    would get special treatment here is "i" and that appears in neither
    "help" nor "all".

  - g_getenv() is very complicated on Windows, so use a simple version
    that is sufficient for our purposes.

Now that it's completely safe, we can just call it from g_logv() in the
usual way without all of the hacks.

https://bugzilla.gnome.org/show_bug.cgi?id=660744
2011-10-04 15:31:49 -04:00
Ryan Lortie
2a677d1370 locks: drop _INIT macros
All locks are now zero-initialised, so we can drop the G_*_INIT macros
for them.

Adjust various users around GLib accordingly and change the docs.

https://bugzilla.gnome.org/show_bug.cgi?id=659866
2011-10-02 22:33:10 -04:00
Ryan Lortie
8e43470c38 Stop dithering over GPrivate
Take out the half-private g_private_init() stuff and replace it with a
G_PRIVATE_INIT macro that allows specifying a GDestroyNotify.

Expose the GPrivate structure in a public header.

Add a g_private_replace() to (sort of) match the functionality of
g_static_mutex_set().

Improve the documentation.

Deprecate g_private_new().
2011-10-02 20:04:03 -04:00
Matthias Clasen
ed325b1879 One forgotten moved doc 2011-10-01 23:38:52 -04:00
Ryan Lortie
4596dfbc75 gmessages: do implicit GPrivate initialisation
Initialise the GPrivate implicitly at the site of first use rather than
explicitly from the thread initialisation function.
2011-09-21 16:06:53 -04:00
Ryan Lortie
90679997ec Continue GPrivate rework
We remove the macros while at the same time switching all libglib users
from g_private_new() to g_private_init().  We deal with the strange
expectations of the libglib code that g_private_* should work before the
GPrivate has been initialised with a temporary shim.
2011-09-21 16:06:53 -04:00
Ryan Lortie
2c7388c19a libglib: stop using g_mutex_new
Use G_MUTEX_INIT or g_mutex_init() as appropriate.
2011-09-21 15:55:36 -04:00
Ryan Lortie
43254e8c4c gmessage.c: mark a private function static 2011-09-21 15:27:47 -04:00
Ryan Lortie
8b03fed0cf Remove unused header gdebug.h
This was only included from gmessages.c.  Nuke the unused parts and
merge the rest into gmessages.c.
2011-09-18 22:08:05 -04:00
Ryan Lortie
5dbc12e9f1 Replace @Varargs with @...
to make gtk-doc happy.
2011-07-22 15:47:24 +02:00
Matthias Clasen
4c64e75ec5 Drop the warnings.sgml template 2011-07-19 20:40:28 -04:00
Colin Walters
a04efe6afb Use SIGTRAP (via G_BREAKPOINT()) if G_DEBUG=fatal-warnings
On Linux with gdb, it's much more convenient to debug programs using
G_DEBUG=fatal-warnings if we send SIGTRAP instead of abort() by
default.  The default handler for both is to terminate the process.

In particular this makes it more easily possible to debug a warning
that's not the first in a program; you can skip past it and
go to the warning you care about.

The "aborting..." message is removed since it's no longer accurate,
and anyways was never very useful; crashes should show up in ABRT/apport
type crash catching systems.

https://bugzilla.gnome.org/show_bug.cgi?id=648423
2011-04-28 14:48:48 -04:00
Murray Cumming
30fdc1a799 Docs: Changed can not to cannot. 2011-03-24 09:33:55 +01:00
Matthias Clasen
4368a07e02 Avoid more compiler warnings 2011-02-08 07:41:49 -05:00
Chun-wei Fan
9806040455 Added and Moved checks for includes
Moved checks for G_OS_WIN32 after GLib header includes and added other checks
required for Windows/MSVC builds
2010-11-09 09:53:12 +08:00
Matthias Clasen
5681809448 Remove excessive header inclusions 2010-09-03 20:51:08 -04:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Matthias Clasen
2f93bea177 Avoid a C99ism
Move a variable declaration to the beginning of the block; see
bug 596561. Also remove a pointless register declaration.
2009-09-29 20:45:26 -04:00
Christian Dywan
278ac0a45d Bug 579050 Allow making selected critical and warning messages non-fatal
Implement g_test_log_set_fatal_handler which is a function similar to
g_log_set_default_handler but for use in unit tests where certain
errors have to be ignored because it is not possible to fix or avoid
them otherwise. A unit test is added.
2009-09-10 16:45:49 +02:00
Matthias Clasen
a6ebda3d69 Copy a va_list when using it multiple times. Reported by Wim Lewis.
* glib/gmessages.c (g_logv): Copy a va_list when using it
        multiple times. Reported by Wim Lewis.


svn path=/trunk/; revision=8021
2009-03-29 19:08:57 +00:00
15:08:59 Tim Janik
cc3de68e21 http://mail.gnome.org/archives/gtk-devel-list/2007-October/msg00089.html
2007-12-10 15:08:59  Tim Janik  <timj@imendio.com>

        * let g_warn_if_fail replace g_assert as discussed here:
          http://mail.gnome.org/archives/gtk-devel-list/2007-October/msg00089.html

        * fix bug #502498: Test framework assertion failures should follow
        gcc error format.

        * gmessages.h, gmessages.c: deprecated g_assert_warning() which is
        unused now. removed g_assert*() definitions whcih are provided by 
        gtestutils.h now. added g_warn_if_reached() and g_warn_if_fail()  
        which are recommended as g_assert/g_assert_not_reached replacements
        for non-test programs.
        added g_warn_message() to implement g_warn_*() macros.
        use emacs-next-error friendly formatting for file:line: for warnings.

        * gtestutils.h, gtestutils.c: use emacs-next-error friendly formatting.
        implement g_assert_not_reached() with g_assertion_message() and
        g_assert() in terms of g_assertion_message_expr() so we'll be able to
        provide assertion messages in test logs.

        * gkeyfile.c, gbookmarkfile.c: changed g_assert*() to g_warn_if_fail()
        or g_return_if_fail() where suitable.

        * gio/: changed g_assert to g_warn_if_fail.



svn path=/trunk/; revision=6086
2007-12-10 14:07:42 +00:00
Matthias Clasen
f90d6d821d Make some structs which are used only once non-static.
2007-01-26  Matthias Clasen <mclasen@redhat.com>

        * gmem.c:
        * gslice.c:
        * gmessages.c:
        * gutils.c: Make some structs which are used only once
        non-static.

svn path=/trunk/; revision=5316
2007-01-26 20:59:54 +00:00
Tor Lillqvist
fd1f409e41 On Win32, if we get a fatal error message while being debugged we break
2006-12-28  Tor Lillqvist  <tml@novell.com>

	* glib/gmessages.c (g_logv): On Win32, if we get a fatal error
	message while being debugged we break into the debugger with
	G_BREAKPOINT(). Don't call abort() if the user is foolhardy enough
	to continue after the breakpoint. The user presumably knows what
	he is doing and deserves what he gets. (#376645, Andreas Köhler)
2006-12-28 14:47:54 +00:00
Sebastian Wilhelmi
e4f8f3b95c Renamed to glib/gthreadprivate.h and moved system thread identifier
2006-05-09  Sebastian Wilhelmi  <wilhelmi@google.com>

	* glib/gthreadinit.h: Renamed to glib/gthreadprivate.h and moved
	system thread identifier comparision and assignment macros from
	glib/gthread.c to glib/gthreadprivate.h.

	* glib/Makefile.am, glib/gatomic.c, glib/gconvert.c, glib/gmain.c,
	glib/gmem.c, glib/gmessages.c, glib/grand.c, glib/gslice.c,
	glib/gthread.c, glib/gutils.c, gthread/gthread-impl.c: Use
	glib/gthreadprivate.h instead of glib/gthreadinit.h.

	* gthread/gthread-impl.c: Use GSystemThread instead of GThread for
	owner determination. This fixes #311043 and is mostly modeled
	after the patch from jylefort@FreeBSD.org.
2006-05-10 00:44:50 +00:00
Tim Janik
733b1789c1 new slice allocator implementation.
Thu Dec  1 17:32:46 2005  Tim Janik  <timj@imendio.com>

        * glib/gslice.[hc]: new slice allocator implementation.

        * tests/slice-test.c: added random slice allocation test.

        * glib/gthread.[hc]: removed newly added private thread mem API.

        * glib/gthreadinit.h:
        * glib/gmessages.c:
        * glib/gthread.c:
        * glib/gmem.c: divided glib threading initialisation into three phases,
        initialisation where private keys and messaging are not available (only
        needed by gmem.c), initialisation without messaging but private keys
        available (gslice.c, gmessage.c), and full fledged initialisers that
        server the rest of glib. initialisation functions got renamed to reflect
        the limitations of their corresponding phases.

        * glib/gmem.c: removed memchunk code, defer allocations to
        g_slice_* instead.

        * glib/gmem.[hc]: removed g_slice_* skeletons.

        * glib/glib.symbols: added g_slice_* symbols.

        * configure.in: check for availability of posix_memalign(3), memalign(3)
        and valloc(3).

        * glib/Makefile.am: added gslice.[hc].
2005-12-01 16:34:33 +00:00
Matthias Clasen
8b14175a3e add new GDebugFlag for fatal_criticals handle G_DEBUG=fatal_criticals, to
2005-11-04  Matthias Clasen  <mclasen@redhat.com>

        * glib/gdebug.h: add new GDebugFlag for fatal_criticals
        * glib/gmessages.c: (_g_debug_init): handle G_DEBUG=fatal_criticals,
        to help find critical warnings in applications.  (#320017,
        Vincent Untz)
2005-11-04 19:05:30 +00:00
Hans Breuer
99563f439c include <process.h> for getpid() include <io.h> for close() etc. add
2005-07-01  Hans Breuer  <hans@breuer.org>

	* glib/gmessages.c : include <process.h> for getpid()
	* glib/gmappedfile.c : include <io.h> for close() etc.
	* glib/makefile.msc.in : add gmappedfile.obj
2005-07-02 19:50:29 +00:00
Tor Lillqvist
398008dac5 glib/gmessages.c (g_log_default_handler) Move the Win32 code that asks the
2005-03-20  Tor Lillqvist  <tml@novell.com>

	* glib/gmessages.c (g_log_default_handler)
	* glib/gutils.c (g_get_prgname): Move the Win32 code that asks the
	program name from the system to g_get_prgname(). Do output the pid
	also on Win32 (useful in case there are several instances of the
	same program running).
2005-03-20 10:52:38 +00:00
Hans Breuer
6b55164587 handle galiasdef.c (although completely useless for msvc build)
2005-03-18  Hans Breuer  <hans@breuer.org>

	* glib/makefile.msc.in : handle galiasdef.c (although completely
	useless for msvc build)

	* glib/gbacktrace.c glib/gmessage.c : need at least _WIN_VER 0x0401
	for IsDebuggerPresent()

	* gobject/makefile.msc.in : handle gobjectaliasdef.c
2005-03-18 17:44:51 +00:00
Matthias Clasen
608a31b98e Make PLT-reduction work with gcc4, and don't include everything in
2005-03-13  Matthias Clasen  <mclasen@redhat.com>

	Make PLT-reduction work with gcc4, and don't include
	everything in galias.h:

	* glib/glib.symbols: Group symbols by header and source file.
	* glib/makegalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegalias.pl -def
	* glib/Makefile.am (galiasdef.c): Add a rule to generate this
	file.
	* glib/*.c: Include galias.h after the other GLib headers,
	include galiasdef.c at the bottom.
2005-03-14 04:26:57 +00:00
Tor Lillqvist
b45420bca8 Nah, don't use FatalAppExit(). abort() is better. 2005-01-19 02:27:37 +00:00
Tor Lillqvist
a4bfec4f1d On Win32 call G_BREAKPOINT() if being debugged.
2005-01-19  Tor Lillqvist  <tml@novell.com>

	* glib/gbacktrace.c (g_on_error_stack_trace): On Win32 call
	G_BREAKPOINT() if being debugged.

	* glib/gmessages.c (g_logv): For fatal messages on Win32, use
	G_BREAKPOINT() also without G_ENABLE_DEBUG, but only if being
	debugged. Suggestion by Ulf Lamping. Otherwise use FatalAppExit().
2005-01-19 01:55:40 +00:00
Manish Singh
ccc3c1c409 filter out G_GNUC stuff when doing the compare.
Thu Nov 25 14:02:43 2004  Manish Singh  <yosh@gimp.org>

        * glib/abicheck.sh: filter out G_GNUC stuff when doing the compare.

        * glib/gmessages.c (g_assert_warning): call abort() at the end, so
        gcc doesn't warn.
2004-11-25 22:09:30 +00:00
Matthias Clasen
0455122b1a Add g_assert_warning.
2004-09-29  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols: Add g_assert_warning.

	* glib/gmessages.h:
	* glib/gmessages.c (g_assert_warning): Treat g_assert
	in the same way as g_return_if_fail and move the string
	constants into a helper function, which also takes
	care of removing the "IA__" prefix from internal aliases.
2004-09-30 02:02:00 +00:00
Tor Lillqvist
7e0e251a98 [Win32] Don't open a console window if standard output or standard error
2004-09-22  Tor Lillqvist  <tml@iki.fi>

	* glib/gmessages.c: [Win32] Don't open a console window if
	standard output or standard error are invalid (as they are for GUI
	applications). These console windows that open up unexpectedly
	have caused endless amounts of confusion among end-users.

	Don't output the process id on Windows. Only output the program
	name. If not set with g_set_prgname(), fetch the application
	executable's name and use that.
2004-09-22 21:15:35 +00:00
Matthias Clasen
b61e269d0d Fix the types of some variables to be GLogLevelFlags instead of guint.
Sun Sep 19 23:52:35 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gmessages.c (mklevel_prefix):
	* glib/gmessages.c (g_logv): Fix the types of some variables
	to be GLogLevelFlags instead of guint.  (#153042, Philippe Blain)
2004-09-20 03:53:39 +00:00
Matthias Clasen
dafdffd751 Implement the same PLT reduction technique used in GTK+:
Thu Sep 16 02:03:15 2004  Matthias Clasen  <maclas@gmx.de>

	Implement the same PLT reduction technique used in GTK+:
2004-09-16 06:05:53 +00:00
Matthias Clasen
ac3ffd1794 Strip the prefix "IA__" from function names, since that is what GTK+ uses
2004-09-09  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmessages.c (g_return_if_fail_warning): Strip the
	prefix "IA__" from function names, since that is what
	GTK+ uses for the PLT-reduction aliases.
2004-09-09 19:41:23 +00:00