aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-01-31 05:22:43 +0000
committerBruce Momjian <bruce@momjian.us>1998-01-31 05:22:43 +0000
commit63d5fd177a426b5038d7289cf728ca7e891e2ea7 (patch)
tree0fe6e781e8d96d3b81f1a886e8102e9b4629f744 /src
parent726c3854cb133b7121c86347cefeb017c1f85226 (diff)
downloadpostgresql-63d5fd177a426b5038d7289cf728ca7e891e2ea7.tar.gz
postgresql-63d5fd177a426b5038d7289cf728ca7e891e2ea7.zip
Inline fmgr_faddr() for speed.
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/Gen_fmgrtab.sh.in22
-rw-r--r--src/backend/utils/fmgr/fmgr.c12
2 files changed, 19 insertions, 15 deletions
diff --git a/src/backend/utils/Gen_fmgrtab.sh.in b/src/backend/utils/Gen_fmgrtab.sh.in
index 3e04b2d890f..41d480ed670 100644
--- a/src/backend/utils/Gen_fmgrtab.sh.in
+++ b/src/backend/utils/Gen_fmgrtab.sh.in
@@ -8,7 +8,7 @@
#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.6 1998/01/15 19:44:50 pgsql Exp $
+# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.7 1998/01/31 05:22:41 momjian Exp $
#
# NOTES
# Passes any -D options on to cpp prior to generating the list
@@ -81,7 +81,7 @@ cat > $HFILE <<FuNkYfMgRsTuFf
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: Gen_fmgrtab.sh.in,v 1.6 1998/01/15 19:44:50 pgsql Exp $
+ * $Id: Gen_fmgrtab.sh.in,v 1.7 1998/01/31 05:22:41 momjian Exp $
*
* NOTES
* ******************************
@@ -123,7 +123,6 @@ typedef struct {
*/
extern char *fmgr_c(FmgrInfo *finfo, FmgrValues *values, bool *isNull);
extern void fmgr_info(Oid procedureId, FmgrInfo *finfo);
-extern func_ptr fmgr_faddr(FmgrInfo *finfo);
extern char *fmgr(Oid procedureId, ... );
extern char *fmgr_ptr(FmgrInfo *finfo, ... );
extern char *fmgr_array_args(Oid procedureId, int nargs,
@@ -135,7 +134,6 @@ extern char *fmgr_array_args(Oid procedureId, int nargs,
extern func_ptr fmgr_dynamic(Oid procedureId, int *pronargs);
extern void load_file(char *filename);
-
/*
* For performance reasons, we often want to simply jump through a
* a function pointer (if it's valid, that is). These calls have
@@ -143,12 +141,24 @@ extern void load_file(char *filename);
* sanity-checking (and so we can track them down more easily when
* we must).
*/
+
+#define fmgr_faddr(finfo) \
+( \
+ fmgr_pl_finfo = (finfo), \
+ (func_ptr)(finfo)->fn_addr \
+)
+
#ifdef TRACE_FMGR_PTR
#define FMGR_PTR2(FINFO, ARG1, ARG2) \
fmgr_ptr(FINFO, 2, ARG1, ARG2)
#else
#define FMGR_PTR2(FINFO, ARG1, ARG2) \
- (((FINFO)->fn_addr) ? (*(fmgr_faddr(FINFO)))(ARG1, ARG2) : fmgr((FINFO)->fn_oid, ARG1, ARG2))
+( \
+ ((FINFO)->fn_addr) ? \
+ (*(fmgr_faddr(FINFO)))(ARG1, ARG2) \
+ : \
+ fmgr((FINFO)->fn_oid, ARG1, ARG2) \
+)
#endif
/*
@@ -182,7 +192,7 @@ cat > $TABCFILE <<FuNkYfMgRtAbStUfF
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.6 1998/01/15 19:44:50 pgsql Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.7 1998/01/31 05:22:41 momjian Exp $
*
* NOTES
*
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index 08302c34170..27762a554eb 100644
--- a/src/backend/utils/fmgr/fmgr.c
+++ b/src/backend/utils/fmgr/fmgr.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.11 1998/01/15 22:31:33 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.12 1998/01/31 05:22:43 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -33,7 +33,8 @@
#include "commands/trigger.h"
-static FmgrInfo *fmgr_pl_finfo;
+/* We don't make this static so fmgr_faddr() macros can access it */
+FmgrInfo *fmgr_pl_finfo;
static char *
fmgr_pl(char *arg0, ...)
@@ -248,13 +249,6 @@ fmgr_info(Oid procedureId, FmgrInfo *finfo)
}
}
-func_ptr
-fmgr_faddr(FmgrInfo *finfo)
-{
- fmgr_pl_finfo = finfo;
- return finfo->fn_addr;
-}
-
/*
* fmgr - return the value of a function call
*