From ed54d31d6c75cf8021efe7a50cd8ef7c10c5cfb2 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 11 Oct 2005 12:30:48 +0000 Subject: * array.c, enum.c, eval.c, util.c: safer function pointer usage. fixed: [ruby-core:06143] * util.h (qsort): removed the definition incompatible to ANSI. fixed: [ruby-core:06147] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- enum.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'enum.c') diff --git a/enum.c b/enum.c index 662e8da14..2229f49da 100644 --- a/enum.c +++ b/enum.c @@ -433,10 +433,10 @@ sort_by_i(VALUE i, VALUE ary) } static int -sort_by_cmp(NODE **aa, NODE **bb) +sort_by_cmp(const void *ap, const void *bp, void *data) { - VALUE a = aa[0]->u1.value; - VALUE b = bb[0]->u1.value; + VALUE a = (*(NODE *const *)ap)->u1.value; + VALUE b = (*(NODE *const *)bp)->u1.value; return rb_cmpint(rb_funcall(a, id_cmp, 1, b), a, b); } @@ -527,7 +527,7 @@ enum_sort_by(VALUE obj) RBASIC(ary)->klass = 0; rb_iterate(rb_each, obj, sort_by_i, ary); if (RARRAY(ary)->len > 1) { - qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE), sort_by_cmp, 0); + ruby_qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE), sort_by_cmp, 0); } if (RBASIC(ary)->klass) { rb_raise(rb_eRuntimeError, "sort_by reentered"); -- cgit