regex: Use glib memory allocator

This commit is contained in:
Christian Persch 2012-02-12 19:40:48 +01:00 committed by Matthias Clasen
parent 38309dc482
commit afa3375210
2 changed files with 39 additions and 83 deletions

View File

@ -58,6 +58,8 @@ global variables are not used. */
#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;
#elif !defined VPCOMPAT
PCRE_EXP_DATA_DEFN void *(*PUBL(malloc))(size_t) = malloc;
PCRE_EXP_DATA_DEFN void (*PUBL(free))(void *) = free;
PCRE_EXP_DATA_DEFN void *(*PUBL(stack_malloc))(size_t) = malloc;
PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = free;
PCRE_EXP_DATA_DEFN void *(*PUBL(malloc))(size_t) = g_try_malloc;
PCRE_EXP_DATA_DEFN void (*PUBL(free))(void *) = g_free;
PCRE_EXP_DATA_DEFN void *(*PUBL(stack_malloc))(size_t) = g_try_malloc;
PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = g_free;
PCRE_EXP_DATA_DEFN int (*PUBL(callout))(PUBL(callout_block) *) = NULL;
#endif

View File

@ -1,86 +1,40 @@
diff -r 0f4042339eb5 pcre/pcre.h
--- pcre/pcre.h Tue Jul 25 22:39:16 2006 +0200
+++ pcre/pcre.h Tue Jul 25 22:52:10 2006 +0200
@@ -233,25 +233,13 @@ typedef struct pcre_callout_block {
/* ------------------------------------------------------------------ */
} pcre_callout_block;
From acf401f1353a37b6edff9577ff07d055c625e4ca Mon Sep 17 00:00:00 2001
From: Christian Persch <chpe@gnome.org>
Date: Sun, 12 Feb 2012 19:40:48 +0100
Subject: [PATCH] regex: Use glib memory allocator
---
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 "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
-
-/**************************************************************************
-This code used to be here for use when compiling as a C++ library. However,
-according to Dair Grant it is not needed: "
-
- Including 'extern "C"' in the declaration generates an "initialized and
- declared `extern'" warning from gcc 4.0.1. Since we include pcre_internal.h,
- which includes pcre.h, which declares these prototypes within an extern "C" {}
- block, we shouldn't need the prefix here.
-
-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;
#elif !defined VPCOMPAT
-PCRE_EXP_DATA_DEFN void *(*PUBL(malloc))(size_t) = malloc;
-PCRE_EXP_DATA_DEFN void (*PUBL(free))(void *) = free;
-PCRE_EXP_DATA_DEFN void *(*PUBL(stack_malloc))(size_t) = malloc;
-PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = free;
+PCRE_EXP_DATA_DEFN void *(*PUBL(malloc))(size_t) = g_try_malloc;
+PCRE_EXP_DATA_DEFN void (*PUBL(free))(void *) = g_free;
+PCRE_EXP_DATA_DEFN void *(*PUBL(stack_malloc))(size_t) = g_try_malloc;
+PCRE_EXP_DATA_DEFN void (*PUBL(stack_free))(void *) = g_free;
PCRE_EXP_DATA_DEFN int (*PUBL(callout))(PUBL(callout_block) *) = NULL;
#endif
diff -r 0f4042339eb5 pcre/pcre_internal.h
--- pcre/pcre_internal.h Tue Jul 25 22:39:16 2006 +0200
+++ 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. */
--
1.7.5.1.217.g4e3aa.dirty