mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-09 12:25:48 +01:00
regex: Use glib memory allocator
This commit is contained in:
parent
38309dc482
commit
afa3375210
@ -58,6 +58,8 @@ global variables are not used. */
|
|||||||
|
|
||||||
#include "pcre_internal.h"
|
#include "pcre_internal.h"
|
||||||
|
|
||||||
|
#include "gmem.h"
|
||||||
|
|
||||||
#if defined _MSC_VER || defined __SYMBIAN32__
|
#if defined _MSC_VER || defined __SYMBIAN32__
|
||||||
static void* LocalPcreMalloc(size_t aSize)
|
static void* LocalPcreMalloc(size_t aSize)
|
||||||
{
|
{
|
||||||
@ -74,10 +76,10 @@ PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = LocalPcreFree;
|
|||||||
PCRE_EXP_DATA_DEFN int (*PUBL(callout))(PUBL(callout_block) *) = NULL;
|
PCRE_EXP_DATA_DEFN int (*PUBL(callout))(PUBL(callout_block) *) = NULL;
|
||||||
|
|
||||||
#elif !defined VPCOMPAT
|
#elif !defined VPCOMPAT
|
||||||
PCRE_EXP_DATA_DEFN void *(*PUBL(malloc))(size_t) = malloc;
|
PCRE_EXP_DATA_DEFN void *(*PUBL(malloc))(size_t) = g_try_malloc;
|
||||||
PCRE_EXP_DATA_DEFN void (*PUBL(free))(void *) = free;
|
PCRE_EXP_DATA_DEFN void (*PUBL(free))(void *) = g_free;
|
||||||
PCRE_EXP_DATA_DEFN void *(*PUBL(stack_malloc))(size_t) = malloc;
|
PCRE_EXP_DATA_DEFN void *(*PUBL(stack_malloc))(size_t) = g_try_malloc;
|
||||||
PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = free;
|
PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = g_free;
|
||||||
PCRE_EXP_DATA_DEFN int (*PUBL(callout))(PUBL(callout_block) *) = NULL;
|
PCRE_EXP_DATA_DEFN int (*PUBL(callout))(PUBL(callout_block) *) = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,86 +1,40 @@
|
|||||||
diff -r 0f4042339eb5 pcre/pcre.h
|
From acf401f1353a37b6edff9577ff07d055c625e4ca Mon Sep 17 00:00:00 2001
|
||||||
--- pcre/pcre.h Tue Jul 25 22:39:16 2006 +0200
|
From: Christian Persch <chpe@gnome.org>
|
||||||
+++ pcre/pcre.h Tue Jul 25 22:52:10 2006 +0200
|
Date: Sun, 12 Feb 2012 19:40:48 +0100
|
||||||
@@ -233,25 +233,13 @@ typedef struct pcre_callout_block {
|
Subject: [PATCH] regex: Use glib memory allocator
|
||||||
/* ------------------------------------------------------------------ */
|
|
||||||
} pcre_callout_block;
|
---
|
||||||
|
glib/pcre/pcre_globals.c | 10 ++++++----
|
||||||
|
1 files changed, 6 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/glib/pcre/pcre_globals.c b/glib/pcre/pcre_globals.c
|
||||||
|
index 36e6ddb..93d3af5 100644
|
||||||
|
--- a/glib/pcre/pcre_globals.c
|
||||||
|
+++ b/glib/pcre/pcre_globals.c
|
||||||
|
@@ -58,6 +58,8 @@ global variables are not used. */
|
||||||
|
|
||||||
-/* Indirection for store get and free functions. These can be set to
|
|
||||||
-alternative malloc/free functions if required. Special ones are used in the
|
|
||||||
-non-recursive case for "frames". There is also an optional callout function
|
|
||||||
-that is triggered by the (?) regex item. For Virtual Pascal, these definitions
|
|
||||||
-have to take another form. */
|
|
||||||
-
|
|
||||||
-#ifndef VPCOMPAT
|
|
||||||
-PCRE_DATA_SCOPE void *(*pcre_malloc)(size_t);
|
|
||||||
-PCRE_DATA_SCOPE void (*pcre_free)(void *);
|
|
||||||
-PCRE_DATA_SCOPE void *(*pcre_stack_malloc)(size_t);
|
|
||||||
-PCRE_DATA_SCOPE void (*pcre_stack_free)(void *);
|
|
||||||
+#include "glib.h"
|
|
||||||
+
|
|
||||||
+#define pcre_malloc g_try_malloc
|
|
||||||
+#define pcre_free g_free
|
|
||||||
+#define pcre_stack_malloc g_try_malloc
|
|
||||||
+
|
|
||||||
PCRE_DATA_SCOPE int (*pcre_callout)(pcre_callout_block *);
|
|
||||||
-#else /* VPCOMPAT */
|
|
||||||
-PCRE_DATA_SCOPE void *pcre_malloc(size_t);
|
|
||||||
-PCRE_DATA_SCOPE void pcre_free(void *);
|
|
||||||
-PCRE_DATA_SCOPE void *pcre_stack_malloc(size_t);
|
|
||||||
-PCRE_DATA_SCOPE void pcre_stack_free(void *);
|
|
||||||
-PCRE_DATA_SCOPE int pcre_callout(pcre_callout_block *);
|
|
||||||
-#endif /* VPCOMPAT */
|
|
||||||
|
|
||||||
/* Exported PCRE functions */
|
|
||||||
|
|
||||||
diff -r 0f4042339eb5 pcre/pcre_globals.c
|
|
||||||
--- pcre/pcre_globals.c Tue Jul 25 22:39:16 2006 +0200
|
|
||||||
+++ pcre/pcre_globals.c Tue Jul 25 22:52:10 2006 +0200
|
|
||||||
@@ -50,32 +50,9 @@ differently, and global variables are no
|
|
||||||
#include "pcre_internal.h"
|
#include "pcre_internal.h"
|
||||||
|
|
||||||
|
+#include "gmem.h"
|
||||||
|
+
|
||||||
|
#if defined _MSC_VER || defined __SYMBIAN32__
|
||||||
|
static void* LocalPcreMalloc(size_t aSize)
|
||||||
|
{
|
||||||
|
@@ -74,10 +76,10 @@ PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = LocalPcreFree;
|
||||||
|
PCRE_EXP_DATA_DEFN int (*PUBL(callout))(PUBL(callout_block) *) = NULL;
|
||||||
|
|
||||||
-#ifndef VPCOMPAT
|
#elif !defined VPCOMPAT
|
||||||
-
|
-PCRE_EXP_DATA_DEFN void *(*PUBL(malloc))(size_t) = malloc;
|
||||||
-/**************************************************************************
|
-PCRE_EXP_DATA_DEFN void (*PUBL(free))(void *) = free;
|
||||||
-This code used to be here for use when compiling as a C++ library. However,
|
-PCRE_EXP_DATA_DEFN void *(*PUBL(stack_malloc))(size_t) = malloc;
|
||||||
-according to Dair Grant it is not needed: "
|
-PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = free;
|
||||||
-
|
+PCRE_EXP_DATA_DEFN void *(*PUBL(malloc))(size_t) = g_try_malloc;
|
||||||
- Including 'extern "C"' in the declaration generates an "initialized and
|
+PCRE_EXP_DATA_DEFN void (*PUBL(free))(void *) = g_free;
|
||||||
- declared `extern'" warning from gcc 4.0.1. Since we include pcre_internal.h,
|
+PCRE_EXP_DATA_DEFN void *(*PUBL(stack_malloc))(size_t) = g_try_malloc;
|
||||||
- which includes pcre.h, which declares these prototypes within an extern "C" {}
|
+PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = g_free;
|
||||||
- block, we shouldn't need the prefix here.
|
PCRE_EXP_DATA_DEFN int (*PUBL(callout))(PUBL(callout_block) *) = NULL;
|
||||||
-
|
|
||||||
-So, from Release 7.0 I have cut this out.
|
|
||||||
-
|
|
||||||
#ifdef __cplusplus
|
|
||||||
-extern "C" void *(*pcre_malloc)(size_t) = malloc;
|
|
||||||
-extern "C" void (*pcre_free)(void *) = free;
|
|
||||||
-extern "C" void *(*pcre_stack_malloc)(size_t) = malloc;
|
|
||||||
-extern "C" void (*pcre_stack_free)(void *) = free;
|
|
||||||
extern "C" int (*pcre_callout)(pcre_callout_block *) = NULL;
|
|
||||||
#else
|
|
||||||
-**************************************************************************/
|
|
||||||
-
|
|
||||||
-void *(*pcre_malloc)(size_t) = malloc;
|
|
||||||
-void (*pcre_free)(void *) = free;
|
|
||||||
-void *(*pcre_stack_malloc)(size_t) = malloc;
|
|
||||||
-void (*pcre_stack_free)(void *) = free;
|
|
||||||
int (*pcre_callout)(pcre_callout_block *) = NULL;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
diff -r 0f4042339eb5 pcre/pcre_internal.h
|
--
|
||||||
--- pcre/pcre_internal.h Tue Jul 25 22:39:16 2006 +0200
|
1.7.5.1.217.g4e3aa.dirty
|
||||||
+++ pcre/pcre_internal.h Tue Jul 25 22:52:10 2006 +0200
|
|
||||||
@@ -480,10 +480,7 @@ variable-length repeat, or a anything ot
|
|
||||||
|
|
||||||
/* Miscellaneous definitions */
|
|
||||||
|
|
||||||
-typedef int BOOL;
|
|
||||||
-
|
|
||||||
-#define FALSE 0
|
|
||||||
-#define TRUE 1
|
|
||||||
+typedef gboolean BOOL;
|
|
||||||
|
|
||||||
/* Escape items that are just an encoding of a particular data value. */
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user