summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-03-26 08:57:16 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-03-26 08:57:16 +0000
commitde51a663b4300777be15003388070748a974e7c7 (patch)
tree635c8f7cfaf91bc155d82dd62b69af9d36f95e16 /gc.c
parent44f754bd87e4b800118c59020d67123430535b9f (diff)
* eval.c: remove TMP_PROTECT_END to prevent C_ALLOCA crash.
* file.c (rb_file_flock): do not trap EINTR. * missing/flock.c (flock): returns the value from lockf(2) directly. * eval.c (ev_const_defined): should ignore toplevel cbase (Object). * eval.c (ev_const_get): ditto. * ext/md5/md5.h: replace by independent md5 implementation contributed by L. Peter Deutsch (thanks). * ext/md5/md5init.c: adopted to Deutsch's md5 implementation. * pack.c (pack_unpack): string from P/p should be tainted. * ext/curses/curses.c: curses on Mac OS X public beta does not have _maxx etc. * marshal.c (w_object): should truncate trailing zero short for bignums. * object.c (sym_intern): new method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/gc.c b/gc.c
index e4b301f..091138e 100644
--- a/gc.c
+++ b/gc.c
@@ -32,22 +32,18 @@ void rb_io_fptr_finalize _((struct OpenFile*));
#endif
/* Make alloca work the best possible way. */
-#ifdef __GNUC__
-# ifndef atarist
-# ifndef alloca
-# define alloca __builtin_alloca
-# endif
-# endif /* atarist */
-#else
-# if defined(HAVE_ALLOCA_H)
+#ifndef __GNUC__
+# if HAVE_ALLOCA_H
# include <alloca.h>
-# elif !defined(alloca)
-void *alloca();
+# else
+# ifdef _AIX
+# pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+void *alloca ();
+# endif
+# endif
# endif
-#endif /* __GNUC__ */
-
-#ifdef _AIX
-#pragma alloca
#endif
static void run_final();
@@ -857,7 +853,7 @@ obj_free(obj)
break;
#ifdef C_ALLOCA
case NODE_ALLOCA:
- RUBY_CRITICAL(free(RANY(obj)->as.node.u1.value));
+ RUBY_CRITICAL(free(RANY(obj)->as.node.u1.node));
break;
#endif
}