[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
guile/guile-core/libguile ChangeLog goops.c
From: |
Dirk Herrmann |
Subject: |
guile/guile-core/libguile ChangeLog goops.c |
Date: |
Fri, 01 Dec 2000 08:05:34 -0800 |
CVSROOT: /cvs
Module name: guile
Changes by: Dirk Herrmann <address@hidden> 00/12/01 08:05:33
Modified files:
guile-core/libguile: ChangeLog goops.c
Log message:
* Started goops cleanup.
CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/ChangeLog.diff?r1=1.1182&r2=1.1183
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/goops.c.diff?r1=1.6&r2=1.7
Patches:
Index: guile/guile-core/libguile/ChangeLog
diff -u guile/guile-core/libguile/ChangeLog:1.1182
guile/guile-core/libguile/ChangeLog:1.1183
--- guile/guile-core/libguile/ChangeLog:1.1182 Thu Nov 30 02:26:44 2000
+++ guile/guile-core/libguile/ChangeLog Fri Dec 1 08:05:33 2000
@@ -1,3 +1,11 @@
+2000-12-01 Dirk Herrmann <address@hidden>
+
+ * goops.c (scm_sys_compute_slots, scm_i_get_keyword,
+ scm_get_keyword, scm_slot_ref_using_class,
+ scm_slot_set_using_class_x): Update the code to match guile's
+ current style (e. g. using SCM_DEFINE, adding comments, removing
+ unnecessary SCM_NIMP tests etc.).
+
2000-11-30 Dirk Herrmann <address@hidden>
Thanks to Julian Satchell for the bug report:
Index: guile/guile-core/libguile/goops.c
diff -u guile/guile-core/libguile/goops.c:1.6
guile/guile-core/libguile/goops.c:1.7
--- guile/guile-core/libguile/goops.c:1.6 Fri Nov 24 06:43:41 2000
+++ guile/guile-core/libguile/goops.c Fri Dec 1 08:05:33 2000
@@ -293,16 +293,21 @@
return orig;
}
-SCM_PROC (s_sys_compute_slots, "%compute-slots", 1, 0, 0,
scm_sys_compute_slots);
-SCM
-scm_sys_compute_slots (SCM class)
+SCM_DEFINE (scm_sys_compute_slots, "%compute-slots", 1, 0, 0,
+ (SCM class),
+ "Return a list consisting of the names of all slots belonging\n"
+ "to class CLASS, i. e. the slots of CLASS and of all of its\n"
+ "superclasses.")
+#define FUNC_NAME s_scm_sys_compute_slots
{
- SCM_ASSERT (SCM_NIMP (class) && CLASSP (class),
- class, SCM_ARG1, s_sys_compute_slots);
+ SCM_ASSERT (CLASSP (class), class, SCM_ARG1, FUNC_NAME);
+
return build_slots_list (SCM_SLOT (class, scm_si_direct_slots),
SCM_SLOT (class, scm_si_cpl));
}
+#undef FUNC_NAME
+
/******************************************************************************
*
@@ -354,36 +359,44 @@
SCM
scm_i_get_keyword (SCM key, SCM l, int len, SCM default_value, const char
*subr)
{
- int i;
- for (i = 0; i < len; i += 2)
+ unsigned int i;
+
+ for (i = 0; i != len; i += 2)
{
- if (!(SCM_NIMP (SCM_CAR (l)) && SCM_KEYWORDP (SCM_CAR (l))))
- scm_misc_error (subr,
- "bad keyword: ~S",
- SCM_LIST1 (SCM_CAR (l)));
- if (SCM_CAR (l) == key)
+ SCM obj = SCM_CAR (l);
+
+ if (!SCM_KEYWORDP (obj))
+ scm_misc_error (subr, "bad keyword: ~S", SCM_LIST1 (obj));
+ else if (SCM_EQ_P (obj, key))
return SCM_CADR (l);
- l = SCM_CDDR (l);
+ else
+ l = SCM_CDDR (l);
}
+
return default_value;
}
-SCM_PROC (s_get_keyword, "get-keyword", 3, 0, 0, scm_get_keyword);
-SCM
-scm_get_keyword (SCM key, SCM l, SCM default_value)
+SCM_DEFINE (scm_get_keyword, "get-keyword", 3, 0, 0,
+ (SCM key, SCM l, SCM default_value),
+ "Determine an associated value for the keyword KEY from the\n"
+ "list L. The list L has to consist of an even number of\n"
+ "elements, where, starting with the first, every second element\n"
+ "is a keyword, followed by its associated value. If L does not\n"
+ "hold a value for KEY, the value DEFAULT_VALUE is returned.")
+#define FUNC_NAME s_scm_get_keyword
{
int len;
- SCM_ASSERT (SCM_NIMP (key) && SCM_KEYWORDP (key),
- key,
- "Bad keyword: ~S",
- s_get_keyword);
+
+ SCM_ASSERT (SCM_KEYWORDP (key), key, SCM_ARG1, FUNC_NAME);
len = scm_ilength (l);
- SCM_ASSERT (len >= 0 && (len & 1) == 0, l,
- "Bad keyword-value list: ~S",
- s_get_keyword);
- return scm_i_get_keyword (key, l, len, default_value, s_get_keyword);
+ if (len < 0 || len % 1 == 1)
+ scm_misc_error (FUNC_NAME, "Bad keyword-value list: ~S", SCM_LIST1 (l));
+
+ return scm_i_get_keyword (key, l, len, default_value, FUNC_NAME);
}
+#undef FUNC_NAME
+
SCM_PROC (s_sys_initialize_object, "%initialize-object", 2, 0, 0,
scm_sys_initialize_object);
@@ -1052,7 +1065,7 @@
/* Two cases here:
* - access is an integer (the offset of this slot in the slots vector)
* - otherwise (car access) is the getter function to apply
- */
+ */
if (SCM_INUMP (access))
return SCM_SLOT (obj, SCM_INUM (access));
else
@@ -1136,40 +1149,39 @@
}
/* ======================================== */
-
-SCM_PROC (s_slot_ref_using_class, "slot-ref-using-class", 3, 0, 0,
scm_slot_ref_using_class);
-SCM
-scm_slot_ref_using_class (SCM class, SCM obj, SCM slot_name)
+SCM_DEFINE (scm_slot_ref_using_class, "slot-ref-using-class", 3, 0, 0,
+ (SCM class, SCM obj, SCM slot_name),
+ "")
+#define FUNC_NAME s_scm_slot_ref_using_class
{
SCM res;
- SCM_ASSERT (SCM_NIMP (class) && CLASSP (class),
- class, SCM_ARG1, s_slot_ref_using_class);
- SCM_ASSERT (SCM_NIMP (obj) && SCM_INSTANCEP (obj),
- obj, SCM_ARG1, s_slot_ref_using_class);
- SCM_ASSERT (SCM_NIMP (slot_name) && SCM_SYMBOLP (slot_name),
- obj, SCM_ARG3, s_slot_ref_using_class);
+ SCM_ASSERT (CLASSP (class), class, SCM_ARG1, FUNC_NAME);
+ SCM_ASSERT (SCM_INSTANCEP (obj), obj, SCM_ARG1, FUNC_NAME);
+ SCM_ASSERT (SCM_SYMBOLP (slot_name), obj, SCM_ARG3, FUNC_NAME);
res = get_slot_value_using_name (class, obj, slot_name);
if (SCM_GOOPS_UNBOUNDP (res))
return CALL_GF3 ("slot-unbound", class, obj, slot_name);
return res;
}
-
-SCM_PROC (s_slot_set_using_class_x, "slot-set-using-class!", 4, 0, 0,
scm_slot_set_using_class_x);
+#undef FUNC_NAME
-SCM
-scm_slot_set_using_class_x (SCM class, SCM obj, SCM slot_name, SCM value)
-{
- SCM_ASSERT (SCM_NIMP (class) && CLASSP (class),
- class, SCM_ARG1, s_slot_set_using_class_x);
- SCM_ASSERT (SCM_NIMP (obj) && SCM_INSTANCEP (obj),
- obj, SCM_ARG2, s_slot_set_using_class_x);
- SCM_ASSERT (SCM_NIMP (slot_name) && SCM_SYMBOLP (slot_name),
- obj, SCM_ARG3, s_slot_set_using_class_x);
+
+SCM_DEFINE (scm_slot_set_using_class_x, "slot-set-using-class!", 4, 0, 0,
+ (SCM class, SCM obj, SCM slot_name, SCM value),
+ "")
+#define FUNC_NAME s_scm_slot_set_using_class_x
+{
+ SCM_ASSERT (CLASSP (class), class, SCM_ARG1, FUNC_NAME);
+ SCM_ASSERT (SCM_INSTANCEP (obj), obj, SCM_ARG2, FUNC_NAME);
+ SCM_ASSERT (SCM_SYMBOLP (slot_name), obj, SCM_ARG3, FUNC_NAME);
+
return set_slot_value_using_name (class, obj, slot_name, value);
}
+#undef FUNC_NAME
+
SCM_PROC (s_slot_bound_using_class_p, "slot-bound-using-class?", 3, 0, 0,
scm_slot_bound_using_class_p);
@@ -2711,3 +2723,9 @@
{
scm_register_module_xxx ("oop goops goopscore", (void *) scm_init_goops);
}
+
+/*
+ Local Variables:
+ c-file-style: "gnu"
+ End:
+*/
- guile/guile-core/libguile ChangeLog goops.c,
Dirk Herrmann <=