summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-06-29 15:54:58 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-06-29 15:54:58 +0000
commit2500356c67755723d802538e8938b30019f64163 (patch)
tree88612ddc34756abfcbdb4c3aec1f44538411fccb
parent9b166f1273d16da2590720d3a57c2d17f97f2218 (diff)
downloadguile-2500356c67755723d802538e8938b30019f64163.tar.gz
* Cleaned up memory error signalling.
-rw-r--r--libguile/ChangeLog13
-rw-r--r--libguile/__scm.h1
-rw-r--r--libguile/error.c2
-rw-r--r--libguile/numbers.c4
-rw-r--r--libguile/ports.c6
-rw-r--r--libguile/random.c7
-rw-r--r--libguile/smob.c8
-rw-r--r--libguile/srcprop.c3
-rw-r--r--libguile/vectors.c2
9 files changed, 29 insertions, 17 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index 169b48508..320c1a56b 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -1,5 +1,18 @@
2000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
+ * __scm.h (SCM_NALLOC): Removed.
+
+ * error.c (scm_wta): Removed sick dispatch code for memory
+ errors. (More sick dispatches still to be removed.)
+
+ * numbers.c (scm_mkbig, scm_adjbig), ports.c (scm_make_port_type),
+ random.c (scm_i_copy_rstate, scm_c_make_rstate), smob.c
+ (scm_make_smob_type), srcprop.c (scm_make_srcprops), vectors.c
+ (scm_vector_set_length_x): Now using scm_memory_error to signal
+ memory errors.
+
+2000-06-29 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
* __scm.h: Removed some commented code and fixed some comments.
(SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL, SCM_BUS_SIGNAL,
diff --git a/libguile/__scm.h b/libguile/__scm.h
index a3c3093f3..13eaa82c9 100644
--- a/libguile/__scm.h
+++ b/libguile/__scm.h
@@ -555,7 +555,6 @@ extern SCM scm_apply_generic (SCM gf, SCM args);
*/
#define SCM_WNA 8
#define SCM_OUTOFRANGE 10
-#define SCM_NALLOC 11
#endif /* SCM_MAGIC_SNARFER */
diff --git a/libguile/error.c b/libguile/error.c
index 5eab67afb..88e6fc030 100644
--- a/libguile/error.c
+++ b/libguile/error.c
@@ -318,8 +318,6 @@ scm_wta (SCM arg, const char *pos, const char *s_subr)
scm_wrong_num_args (arg);
case SCM_OUTOFRANGE:
scm_out_of_range (s_subr, arg);
- case SCM_NALLOC:
- scm_memory_error (s_subr);
default:
/* this shouldn't happen. */
scm_misc_error (s_subr, "Unknown error", SCM_EOL);
diff --git a/libguile/numbers.c b/libguile/numbers.c
index 132fa9440..6d3e808ce 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -1319,7 +1319,7 @@ scm_mkbig (scm_sizet nlen, int sign)
/* Cast to long int to avoid signed/unsigned comparison warnings. */
if ((( ((long int) nlen) << SCM_BIGSIZEFIELD) >> SCM_BIGSIZEFIELD)
!= (long int) nlen)
- scm_wta (SCM_MAKINUM (nlen), (char *) SCM_NALLOC, s_bignum);
+ scm_memory_error (s_bignum);
SCM_NEWCELL (v);
SCM_DEFER_INTS;
@@ -1356,7 +1356,7 @@ scm_adjbig (SCM b, scm_sizet nlen)
{
scm_sizet nsiz = nlen;
if (((nsiz << SCM_BIGSIZEFIELD) >> SCM_BIGSIZEFIELD) != nlen)
- scm_wta (scm_ulong2num (nsiz), (char *) SCM_NALLOC, s_adjbig);
+ scm_memory_error (s_adjbig);
SCM_DEFER_INTS;
{
diff --git a/libguile/ports.c b/libguile/ports.c
index 3badd8349..0c2536945 100644
--- a/libguile/ports.c
+++ b/libguile/ports.c
@@ -151,8 +151,10 @@ scm_make_port_type (char *name,
}
SCM_ALLOW_INTS;
if (!tmp)
- ptoberr:scm_wta (SCM_MAKINUM ((long) scm_numptob),
- (char *) SCM_NALLOC, "scm_make_port_type");
+ {
+ ptoberr:
+ scm_memory_error ("scm_make_port_type");
+ }
/* Make a class object if Goops is present */
if (scm_port_class)
scm_make_port_classes (scm_numptob - 1, SCM_PTOBNAME (scm_numptob - 1));
diff --git a/libguile/random.c b/libguile/random.c
index cfe1d0050..28c94d33c 100644
--- a/libguile/random.c
+++ b/libguile/random.c
@@ -171,8 +171,7 @@ scm_i_copy_rstate (scm_i_rstate *state)
{
scm_rstate *new_state = malloc (scm_the_rng.rstate_size);
if (new_state == 0)
- scm_wta (SCM_MAKINUM (scm_the_rng.rstate_size),
- (char *) SCM_NALLOC, "rstate");
+ scm_memory_error ("rstate");
return memcpy (new_state, state, scm_the_rng.rstate_size);
}
@@ -186,9 +185,7 @@ scm_c_make_rstate (char *seed, int n)
{
scm_rstate *state = malloc (scm_the_rng.rstate_size);
if (state == 0)
- scm_wta (SCM_MAKINUM (scm_the_rng.rstate_size),
- (char *) SCM_NALLOC,
- "rstate");
+ scm_memory_error ("rstate");
state->reserved0 = 0;
scm_the_rng.init_rstate (state, seed, n);
return state;
diff --git a/libguile/smob.c b/libguile/smob.c
index 3b5f74069..406c5370b 100644
--- a/libguile/smob.c
+++ b/libguile/smob.c
@@ -144,9 +144,11 @@ scm_make_smob_type (char *name, scm_sizet size)
scm_numsmob++;
}
SCM_ALLOW_INTS;
- if (!tmp)
- smoberr:scm_wta (SCM_MAKINUM ((long) scm_numsmob),
- (char *) SCM_NALLOC, "scm_make_smob_type");
+ if (!tmp)
+ {
+ smoberr:
+ scm_memory_error ("scm_make_smob_type");
+ }
/* Make a class object if Goops is present. */
if (scm_smob_class)
scm_smob_class[scm_numsmob - 1]
diff --git a/libguile/srcprop.c b/libguile/srcprop.c
index f3aebe800..7f2271df7 100644
--- a/libguile/srcprop.c
+++ b/libguile/srcprop.c
@@ -132,7 +132,8 @@ scm_make_srcprops (int line, int col, SCM filename, SCM copy, SCM plist)
scm_sizet n = sizeof (scm_srcprops_chunk)
+ sizeof (scm_srcprops) * (SRCPROPS_CHUNKSIZE - 1);
SCM_SYSCALL (mem = (scm_srcprops_chunk *) malloc (n));
- SCM_ASSERT (mem, SCM_UNDEFINED, SCM_NALLOC, "srcprops");
+ if (mem == NULL)
+ scm_memory_error ("srcprops");
scm_mallocated += n;
mem->next = srcprops_chunklist;
srcprops_chunklist = mem;
diff --git a/libguile/vectors.c b/libguile/vectors.c
index 2d045b332..2ffe1302d 100644
--- a/libguile/vectors.c
+++ b/libguile/vectors.c
@@ -103,7 +103,7 @@ scm_vector_set_length_x (SCM vect, SCM len)
l = 1L;
siz = l * sz;
if (siz != l * sz)
- scm_wta (SCM_MAKINUM (l * sz), (char *) SCM_NALLOC, s_vector_set_length_x);
+ scm_memory_error (s_vector_set_length_x);
SCM_REDEFER_INTS;
SCM_SETCHARS (vect,
((char *)