public inbox for guile-gtk@sourceware.org
 help / color / mirror / Atom feed
From: "Greg J. Badros" <gjb@cs.washington.edu>
To: Ariel Rios <ariel@arcavia.com>,
	Marius Vollmer <mvo@dt.e-technik.uni-dortmund.de>
Cc: gnome-announce-list@gnome.org, guile@sourceware.cygnus.com,
	guile-gtk@sourceware.cygnus.com
Subject: Patch to make guile-gtk work with upcoming guile-1.4
Date: Sun, 18 Jun 2000 19:06:00 -0000	[thread overview]
Message-ID: <qrr3dmawhl4.fsf@clavicle.cs.washington.edu> (raw)
In-Reply-To: <200006020301.WAA23978@erin.galway.com.mx>

The below patch makes guile-gtk compile and run the calc.scm test
program when building against guile-1.3.5pre2 (the upcoming guile-1.4).
The patch is relative to current CVS guile-gtk. I suggest folding it
into guile-gtk after guile-1.4 is released.  (It should be tested more
thoroughly, too, of course.)

Thanks,
Greg

Sun Jun 18 18:59:41 2000  Greg J. Badros  <gjb@cs.washington.edu>

        * guile-gtk.c: Updated for guile-1.4 which is about to be
        released.  Change scm_newsmob(..) to scm_make_smob_type_mfpe(..)
        calls.

Index: guile-gtk.c
===================================================================
RCS file: /cvs/gnome/gnome-guile/guile-gtk/guile-gtk.c,v
retrieving revision 1.48
diff -u -p -r1.48 guile-gtk.c
--- guile-gtk.c	2000/05/16 20:18:53	1.48
+++ guile-gtk.c	2000/06/19 02:02:55
@@ -558,13 +558,6 @@ gtkobj_free (SCM obj)
   return sizeof (sgtk_object_proxy);
 }
 
-struct scm_smobfuns gtkobj_smob = {
-  gtkobj_mark,
-  gtkobj_free,
-  gtkobj_print,
-  NULL
-};
-
 /* Treating GtkObject proxies right during GC.  We need to run custom
    code during the mark phase of the Scheme GC.  We do this by
    creating a new smob type and allocating one actual smob of it.
@@ -648,13 +641,6 @@ gtkobj_marker_hook_print (SCM obj, SCM p
   return 1;
 }
 
-struct scm_smobfuns gtkobj_marker_hook_smob = {
-  gtkobj_marker_hook,
-  NULL,
-  gtkobj_marker_hook_print,
-  NULL
-};
-
 static void
 install_marker_hook ()
 {
@@ -1033,13 +1019,6 @@ boxed_print (SCM exp, SCM port, scm_prin
   return 1;
 }
 
-struct scm_smobfuns boxed_smob = {
-  scm_mark0,
-  boxed_free,
-  boxed_print,
-  NULL
-};
-
 SCM
 sgtk_boxed2scm (gpointer ptr, sgtk_boxed_info *info, int copyp)
 {
@@ -1275,13 +1254,6 @@ gtktype_equalp (SCM obj1, SCM obj2)
   return GTKTYPE (obj1) == GTKTYPE (obj2)? SCM_BOOL_T : SCM_BOOL_F;
 }
 
-struct scm_smobfuns gtktype_smob = {
-  scm_mark0,
-  scm_free0,
-  gtktype_print,
-  gtktype_equalp
-};
-
 GtkType
 sgtk_type_from_name (char *name)
 {
@@ -1351,13 +1323,6 @@ illobj_print (SCM obj, SCM port, scm_pri
   return 1;
 }
 
-struct scm_smobfuns illobj_smob = {
-  scm_mark0,
-  scm_free0,
-  illobj_print,
-  NULL
-};
-
 static SCM
 sgtk_make_illegal_type_object (GtkType type)
 {
@@ -2652,11 +2617,40 @@ SCM_SYMBOL (sym_gtk_version, "gtk-1.3");
 static void
 sgtk_init_substrate (void)
 {
-  tc16_gtkobj_marker_hook = scm_newsmob (&gtkobj_marker_hook_smob);
-  tc16_gtkobj = scm_newsmob (&gtkobj_smob);
-  tc16_boxed = scm_newsmob (&boxed_smob);
-  tc16_gtktype = scm_newsmob (&gtktype_smob);
-  tc16_illobj = scm_newsmob (&illobj_smob);
+  tc16_gtkobj_marker_hook = scm_make_smob_type_mfpe("gtkobj_marker_hook",
+                                                    sizeof(sgtk_object_proxy),
+                                                    gtkobj_marker_hook,
+                                                    NULL,
+                                                    gtkobj_marker_hook_print,
+                                                    NULL);
+
+  tc16_gtkobj = scm_make_smob_type_mfpe("gtkobj",
+                                        sizeof(sgtk_object_proxy),
+                                        gtkobj_mark,
+                                        gtkobj_free,
+                                        gtkobj_print,
+                                        NULL);
+
+  tc16_boxed = scm_make_smob_type_mfpe("gtkboxed",
+                                       sizeof(sgtk_boxed_info),
+                                       scm_mark0,
+                                       boxed_free,
+                                       boxed_print,
+                                       NULL);
+
+  tc16_gtktype = scm_make_smob_type_mfpe("gtktype",
+                                         sizeof(sgtk_type_info),
+                                         scm_mark0,
+                                         scm_free0,
+                                         gtktype_print,
+                                         gtktype_equalp);
+
+  tc16_illobj = scm_make_smob_type_mfpe("gtkillobj",
+                                        sizeof(GtkType),
+                                        scm_mark0,
+                                        scm_free0,
+                                        illobj_print,
+                                        NULL);
 
   global_protects = NULL;
   sgtk_protshell_chunk = g_mem_chunk_create (sgtk_protshell, 128,

  reply	other threads:[~2000-06-18 19:06 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-06-01 21:05 guile-gtk 0.18 Released Ariel Rios
2000-06-18 19:06 ` Greg J. Badros [this message]
2000-06-19  2:06   ` Patch to make guile-gtk work with upcoming guile-1.4 Mikael Djurfeldt
2000-06-19 14:11     ` Greg J. Badros
2000-06-19 15:47       ` Mikael Djurfeldt
2000-06-19 14:49     ` Marius Vollmer
2000-06-19 15:01       ` Greg J. Badros
2000-06-19 21:54         ` Jim Blandy
2000-06-20  8:41           ` Greg J. Badros
2000-06-20  9:15             ` Jost Boekemeier
2000-06-20  9:22               ` Brett Viren
2000-06-19 14:49   ` Marius Vollmer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=qrr3dmawhl4.fsf@clavicle.cs.washington.edu \
    --to=gjb@cs.washington.edu \
    --cc=ariel@arcavia.com \
    --cc=gnome-announce-list@gnome.org \
    --cc=guile-gtk@sourceware.cygnus.com \
    --cc=guile@sourceware.cygnus.com \
    --cc=mvo@dt.e-technik.uni-dortmund.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).