mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 15:06:14 +01:00
removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros. added macros
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org> * glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros. added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and G_STRUCT_MEMBER() for handling structure fields through their offsets. (struct _GHookList): added a hook_free function member, that can be used to free additional fields in derived hook structures. g_hook_free(): if hook_list->hook_free != NULL, call this function prior to freeing the hook. (this functionality should have been there in the first place, it just got forgotten as an implementation detail).
This commit is contained in:
parent
a32e40e2c4
commit
e8a920f88d
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
||||
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
|
||||
added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
|
||||
G_STRUCT_MEMBER() for handling structure fields through their offsets.
|
||||
(struct _GHookList): added a hook_free function member, that can be used
|
||||
to free additional fields in derived hook structures.
|
||||
g_hook_free(): if hook_list->hook_free != NULL, call this function prior
|
||||
to freeing the hook. (this functionality should have been there in the
|
||||
first place, it just got forgotten as an implementation detail).
|
||||
|
||||
Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
|
||||
|
||||
* glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
|
||||
|
@ -1,3 +1,14 @@
|
||||
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
|
||||
added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
|
||||
G_STRUCT_MEMBER() for handling structure fields through their offsets.
|
||||
(struct _GHookList): added a hook_free function member, that can be used
|
||||
to free additional fields in derived hook structures.
|
||||
g_hook_free(): if hook_list->hook_free != NULL, call this function prior
|
||||
to freeing the hook. (this functionality should have been there in the
|
||||
first place, it just got forgotten as an implementation detail).
|
||||
|
||||
Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
|
||||
|
||||
* glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
|
||||
|
@ -1,3 +1,14 @@
|
||||
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
|
||||
added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
|
||||
G_STRUCT_MEMBER() for handling structure fields through their offsets.
|
||||
(struct _GHookList): added a hook_free function member, that can be used
|
||||
to free additional fields in derived hook structures.
|
||||
g_hook_free(): if hook_list->hook_free != NULL, call this function prior
|
||||
to freeing the hook. (this functionality should have been there in the
|
||||
first place, it just got forgotten as an implementation detail).
|
||||
|
||||
Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
|
||||
|
||||
* glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
|
||||
|
@ -1,3 +1,14 @@
|
||||
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
|
||||
added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
|
||||
G_STRUCT_MEMBER() for handling structure fields through their offsets.
|
||||
(struct _GHookList): added a hook_free function member, that can be used
|
||||
to free additional fields in derived hook structures.
|
||||
g_hook_free(): if hook_list->hook_free != NULL, call this function prior
|
||||
to freeing the hook. (this functionality should have been there in the
|
||||
first place, it just got forgotten as an implementation detail).
|
||||
|
||||
Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
|
||||
|
||||
* glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
|
||||
|
@ -1,3 +1,14 @@
|
||||
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
|
||||
added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
|
||||
G_STRUCT_MEMBER() for handling structure fields through their offsets.
|
||||
(struct _GHookList): added a hook_free function member, that can be used
|
||||
to free additional fields in derived hook structures.
|
||||
g_hook_free(): if hook_list->hook_free != NULL, call this function prior
|
||||
to freeing the hook. (this functionality should have been there in the
|
||||
first place, it just got forgotten as an implementation detail).
|
||||
|
||||
Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
|
||||
|
||||
* glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
|
||||
|
@ -1,3 +1,14 @@
|
||||
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
|
||||
added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
|
||||
G_STRUCT_MEMBER() for handling structure fields through their offsets.
|
||||
(struct _GHookList): added a hook_free function member, that can be used
|
||||
to free additional fields in derived hook structures.
|
||||
g_hook_free(): if hook_list->hook_free != NULL, call this function prior
|
||||
to freeing the hook. (this functionality should have been there in the
|
||||
first place, it just got forgotten as an implementation detail).
|
||||
|
||||
Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
|
||||
|
||||
* glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
|
||||
|
@ -1,3 +1,14 @@
|
||||
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
|
||||
added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
|
||||
G_STRUCT_MEMBER() for handling structure fields through their offsets.
|
||||
(struct _GHookList): added a hook_free function member, that can be used
|
||||
to free additional fields in derived hook structures.
|
||||
g_hook_free(): if hook_list->hook_free != NULL, call this function prior
|
||||
to freeing the hook. (this functionality should have been there in the
|
||||
first place, it just got forgotten as an implementation detail).
|
||||
|
||||
Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
|
||||
|
||||
* glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
|
||||
|
@ -1,3 +1,14 @@
|
||||
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
|
||||
added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
|
||||
G_STRUCT_MEMBER() for handling structure fields through their offsets.
|
||||
(struct _GHookList): added a hook_free function member, that can be used
|
||||
to free additional fields in derived hook structures.
|
||||
g_hook_free(): if hook_list->hook_free != NULL, call this function prior
|
||||
to freeing the hook. (this functionality should have been there in the
|
||||
first place, it just got forgotten as an implementation detail).
|
||||
|
||||
Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
|
||||
|
||||
* glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
|
||||
|
6
ghook.c
6
ghook.c
@ -42,6 +42,7 @@ g_hook_list_init (GHookList *hook_list,
|
||||
hook_size,
|
||||
hook_size * G_HOOKS_PREALLOC,
|
||||
G_ALLOC_AND_FREE);
|
||||
hook_list->hook_free = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
@ -105,6 +106,9 @@ g_hook_free (GHookList *hook_list,
|
||||
g_return_if_fail (hook_list->is_setup);
|
||||
g_return_if_fail (hook != NULL);
|
||||
g_return_if_fail (G_HOOK_IS_UNLINKED (hook));
|
||||
|
||||
if (hook_list->hook_free)
|
||||
hook_list->hook_free (hook_list, hook);
|
||||
|
||||
g_chunk_free (hook, hook_list->hook_memchunk);
|
||||
}
|
||||
@ -176,7 +180,7 @@ g_hook_unref (GHookList *hook_list,
|
||||
}
|
||||
hook->prev = NULL;
|
||||
|
||||
g_chunk_free (hook, hook_list->hook_memchunk);
|
||||
g_hook_free (hook_list, hook);
|
||||
|
||||
if (!hook_list->hooks &&
|
||||
!hook_list->is_setup)
|
||||
|
24
glib.h
24
glib.h
@ -181,20 +181,15 @@ extern "C" {
|
||||
#endif /* !G_VA_COPY */
|
||||
|
||||
|
||||
/* Provide simple enum value macro wrappers that ease automated
|
||||
* enum value stringification code. [abandoned]
|
||||
/* Provide convenience macros for handling structure
|
||||
* fields through their offsets.
|
||||
*/
|
||||
#if !defined (G_CODE_GENERATION)
|
||||
#define G_ENUM( EnumerationName ) EnumerationName
|
||||
#define G_FLAGS( EnumerationName ) EnumerationName
|
||||
#define G_NV( VALUE_NAME , value_nick, VALUE) VALUE_NAME = (VALUE)
|
||||
#define G_SV( VALUE_NAME, value_nick ) VALUE_NAME
|
||||
#else /* G_CODE_GENERATION */
|
||||
#define G_ENUM( EnumerationName ) G_ENUM_E + EnumerationName +
|
||||
#define G_FLAGS( EnumerationName ) G_ENUM_F + EnumerationName +
|
||||
#define G_NV( VALUE_NAME , value_nick, VALUE) G_ENUM_V + VALUE_NAME + value_nick +
|
||||
#define G_SV( VALUE_NAME, value_nick ) G_ENUM_V + VALUE_NAME + value_nick +
|
||||
#endif /* G_CODE_GENERATION */
|
||||
#define G_STRUCT_OFFSET(struct_type, member) \
|
||||
((gulong) ((gchar*) &((struct_type*) 0)->member))
|
||||
#define G_STRUCT_MEMBER_P(struct_p, struct_offset) \
|
||||
((gpointer) ((gchar*) (struct_p) + (gulong) (struct_offset)))
|
||||
#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset) \
|
||||
(*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
|
||||
|
||||
|
||||
/* inlining hassle. for compilers that don't allow the `inline' keyword,
|
||||
@ -936,6 +931,8 @@ typedef void (*GHookMarshaller) (GHook *hook,
|
||||
gpointer data);
|
||||
typedef void (*GHookFunc) (gpointer data);
|
||||
typedef gboolean (*GHookCheckFunc) (gpointer data);
|
||||
typedef void (*GHookFreeFunc) (GHookList *hook_list,
|
||||
GHook *hook);
|
||||
typedef void (*GLogFunc) (const gchar *log_domain,
|
||||
GLogLevelFlags log_level,
|
||||
const gchar *message,
|
||||
@ -1286,6 +1283,7 @@ struct _GHookList
|
||||
guint is_setup : 1;
|
||||
GHook *hooks;
|
||||
GMemChunk *hook_memchunk;
|
||||
GHookFreeFunc hook_free; /* virtual function */
|
||||
};
|
||||
|
||||
struct _GHook
|
||||
|
@ -42,6 +42,7 @@ g_hook_list_init (GHookList *hook_list,
|
||||
hook_size,
|
||||
hook_size * G_HOOKS_PREALLOC,
|
||||
G_ALLOC_AND_FREE);
|
||||
hook_list->hook_free = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
@ -105,6 +106,9 @@ g_hook_free (GHookList *hook_list,
|
||||
g_return_if_fail (hook_list->is_setup);
|
||||
g_return_if_fail (hook != NULL);
|
||||
g_return_if_fail (G_HOOK_IS_UNLINKED (hook));
|
||||
|
||||
if (hook_list->hook_free)
|
||||
hook_list->hook_free (hook_list, hook);
|
||||
|
||||
g_chunk_free (hook, hook_list->hook_memchunk);
|
||||
}
|
||||
@ -176,7 +180,7 @@ g_hook_unref (GHookList *hook_list,
|
||||
}
|
||||
hook->prev = NULL;
|
||||
|
||||
g_chunk_free (hook, hook_list->hook_memchunk);
|
||||
g_hook_free (hook_list, hook);
|
||||
|
||||
if (!hook_list->hooks &&
|
||||
!hook_list->is_setup)
|
||||
|
24
glib/glib.h
24
glib/glib.h
@ -181,20 +181,15 @@ extern "C" {
|
||||
#endif /* !G_VA_COPY */
|
||||
|
||||
|
||||
/* Provide simple enum value macro wrappers that ease automated
|
||||
* enum value stringification code. [abandoned]
|
||||
/* Provide convenience macros for handling structure
|
||||
* fields through their offsets.
|
||||
*/
|
||||
#if !defined (G_CODE_GENERATION)
|
||||
#define G_ENUM( EnumerationName ) EnumerationName
|
||||
#define G_FLAGS( EnumerationName ) EnumerationName
|
||||
#define G_NV( VALUE_NAME , value_nick, VALUE) VALUE_NAME = (VALUE)
|
||||
#define G_SV( VALUE_NAME, value_nick ) VALUE_NAME
|
||||
#else /* G_CODE_GENERATION */
|
||||
#define G_ENUM( EnumerationName ) G_ENUM_E + EnumerationName +
|
||||
#define G_FLAGS( EnumerationName ) G_ENUM_F + EnumerationName +
|
||||
#define G_NV( VALUE_NAME , value_nick, VALUE) G_ENUM_V + VALUE_NAME + value_nick +
|
||||
#define G_SV( VALUE_NAME, value_nick ) G_ENUM_V + VALUE_NAME + value_nick +
|
||||
#endif /* G_CODE_GENERATION */
|
||||
#define G_STRUCT_OFFSET(struct_type, member) \
|
||||
((gulong) ((gchar*) &((struct_type*) 0)->member))
|
||||
#define G_STRUCT_MEMBER_P(struct_p, struct_offset) \
|
||||
((gpointer) ((gchar*) (struct_p) + (gulong) (struct_offset)))
|
||||
#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset) \
|
||||
(*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
|
||||
|
||||
|
||||
/* inlining hassle. for compilers that don't allow the `inline' keyword,
|
||||
@ -936,6 +931,8 @@ typedef void (*GHookMarshaller) (GHook *hook,
|
||||
gpointer data);
|
||||
typedef void (*GHookFunc) (gpointer data);
|
||||
typedef gboolean (*GHookCheckFunc) (gpointer data);
|
||||
typedef void (*GHookFreeFunc) (GHookList *hook_list,
|
||||
GHook *hook);
|
||||
typedef void (*GLogFunc) (const gchar *log_domain,
|
||||
GLogLevelFlags log_level,
|
||||
const gchar *message,
|
||||
@ -1286,6 +1283,7 @@ struct _GHookList
|
||||
guint is_setup : 1;
|
||||
GHook *hooks;
|
||||
GMemChunk *hook_memchunk;
|
||||
GHookFreeFunc hook_free; /* virtual function */
|
||||
};
|
||||
|
||||
struct _GHook
|
||||
|
Loading…
Reference in New Issue
Block a user