[pango/pango2: 18/44] debug spew
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/pango2: 18/44] debug spew
- Date: Thu, 16 Jun 2022 00:50:33 +0000 (UTC)
commit 059d91f053c99d772d50cc53b56e51eb08efab66
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Jun 14 07:53:06 2022 -0400
debug spew
pango/pango-font-face.c | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
---
diff --git a/pango/pango-font-face.c b/pango/pango-font-face.c
index 2144a3eb..73c41997 100644
--- a/pango/pango-font-face.c
+++ b/pango/pango-font-face.c
@@ -23,6 +23,34 @@
#include "pango-font-face-private.h"
#include "pango-font-family.h"
+#ifdef __linux__
+#include <execinfo.h>
+
+static inline char *
+get_backtrace (void)
+{
+ void *buffer[1024];
+ int size;
+ char **symbols;
+ GString *s;
+
+ size = backtrace (buffer, 1024);
+ symbols = backtrace_symbols (buffer, size);
+
+ s = g_string_new ("");
+
+ for (int i = 0; i < size; i++)
+ {
+ g_string_append (s, symbols[i]);
+ g_string_append_c (s, '\n');
+ }
+
+ free (symbols);
+
+ return g_string_free (s, FALSE);
+}
+#endif
+
/**
* PangoFontFace:
*
@@ -252,6 +280,19 @@ pango_font_face_create_font (PangoFontFace *face,
float dpi,
const PangoMatrix *ctm)
{
+ if (!PANGO_IS_FONT_FACE (face))
+ {
+ char *s = pango_font_description_to_string (desc);
+#ifdef __linux__
+ char *bs = get_backtrace ();
+#else
+ char *bs = g_strdup ("");
+#endif
+ g_critical ("pango_font_face_create_font called without a face for %s\n%s", s, bs);
+ g_free (s);
+ g_free (bs);
+ }
+
g_return_val_if_fail (PANGO_IS_FONT_FACE (face), NULL);
return PANGO_FONT_FACE_GET_CLASS (face)->create_font (face, desc, dpi, ctm);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]