guile-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile/guile-core/libguile ChangeLog goops.c goo...


From: Mikael Djurfeldt
Subject: guile/guile-core/libguile ChangeLog goops.c goo...
Date: Sat, 03 Mar 2001 21:27:41 -0800

CVSROOT:        /cvs
Module name:    guile
Changes by:     Mikael Djurfeldt <address@hidden>       01/03/03 21:27:41

Modified files:
        guile-core/libguile: ChangeLog goops.c goops.h 

Log message:
        * goops.c (scm_sys_pre_expand_closure_x): New procedure.

CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/ChangeLog.diff?r1=1.1290&r2=1.1291
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/goops.c.diff?r1=1.19&r2=1.20
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/goops.h.diff?r1=1.7&r2=1.8

Patches:
Index: guile/guile-core/libguile/ChangeLog
diff -u guile/guile-core/libguile/ChangeLog:1.1290 
guile/guile-core/libguile/ChangeLog:1.1291
--- guile/guile-core/libguile/ChangeLog:1.1290  Sat Mar  3 15:56:03 2001
+++ guile/guile-core/libguile/ChangeLog Sat Mar  3 21:27:40 2001
@@ -1,3 +1,7 @@
+2001-03-04  Mikael Djurfeldt  <address@hidden>
+
+       * goops.c (scm_sys_pre_expand_closure_x): New procedure.
+
 2001-03-04  Marius Vollmer  <address@hidden>
 
        * eval.c (scm_s_duplicate_bindings): New error message.
Index: guile/guile-core/libguile/goops.c
diff -u guile/guile-core/libguile/goops.c:1.19 
guile/guile-core/libguile/goops.c:1.20
--- guile/guile-core/libguile/goops.c:1.19      Sat Feb 24 15:46:04 2001
+++ guile/guile-core/libguile/goops.c   Sat Mar  3 21:27:41 2001
@@ -1,4 +1,4 @@
-/*     Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+/*     Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -934,6 +934,23 @@
 }
 #undef FUNC_NAME
 
+SCM_DEFINE (scm_sys_pre_expand_closure_x, "%pre-expand-closure!", 1, 0, 0,
+           (SCM closure),
+           "Internal GOOPS magic---don't use this function!")
+#define FUNC_NAME s_scm_sys_pre_expand_closure_x
+{
+  SCM formals, code, env;
+  SCM_VALIDATE_CLOSURE (1, closure);
+  formals = SCM_CAR (SCM_CODE (closure));
+  env = SCM_EXTEND_ENV (formals, formals, SCM_ENV (closure));
+  code = SCM_CDR (SCM_CODE (closure));
+  while (SCM_NNULLP (SCM_CDR (code))
+        && SCM_IMP (SCM_CAR (code))
+        && SCM_ISYMP (SCM_CAR (code)))
+    code = scm_m_expand_body (code, env);
+  return closure;
+}
+#undef FUNC_NAME
 
 /******************************************************************************
  *
Index: guile/guile-core/libguile/goops.h
diff -u guile/guile-core/libguile/goops.h:1.7 
guile/guile-core/libguile/goops.h:1.8
--- guile/guile-core/libguile/goops.h:1.7       Thu Dec 21 09:07:38 2000
+++ guile/guile-core/libguile/goops.h   Sat Mar  3 21:27:41 2001
@@ -2,7 +2,7 @@
 
 #ifndef GOOPSH
 #define GOOPSH
-/*     Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+/*     Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -257,7 +257,8 @@
 SCM scm_method_generic_function (SCM obj); 
 SCM scm_method_specializers (SCM obj); 
 SCM scm_method_procedure (SCM obj); 
-SCM scm_accessor_method_slot_definition (SCM obj); 
+SCM scm_accessor_method_slot_definition (SCM obj);
+SCM scm_sys_pre_expand_closure_x (SCM closure);
 SCM scm_sys_fast_slot_ref (SCM obj, SCM index); 
 SCM scm_sys_fast_slot_set_x (SCM obj, SCM index, SCM value); 
 SCM scm_slot_ref_using_class (SCM cls, SCM obj, SCM slot_name); 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]