From e7f588c6f2f05c81a63f5d08505b6121f1011480 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Wed, 23 Jun 2010 13:08:52 +0000 Subject: [PATCH] got comparison order wrong in the isymbol vs. lsymbol case --- lib/srfi/95/qsort.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/srfi/95/qsort.c b/lib/srfi/95/qsort.c index 4b5d36aa..0f430874 100644 --- a/lib/srfi/95/qsort.c +++ b/lib/srfi/95/qsort.c @@ -84,8 +84,8 @@ static int sexp_object_compare (sexp ctx, sexp a, sexp b) { } #if SEXP_USE_HUFF_SYMS } else if (sexp_lsymbolp(a) && sexp_isymbolp(b)) { - res = sexp_object_compare(ctx, sexp_symbol_string(a), - sexp_write_to_string(ctx, b)); + res = strcmp(sexp_string_data(sexp_symbol_string(a)), + sexp_string_data(sexp_write_to_string(ctx, b))); #endif } else { res = 1; @@ -93,8 +93,8 @@ static int sexp_object_compare (sexp ctx, sexp a, sexp b) { } else if (sexp_pointerp(b)) { #if SEXP_USE_HUFF_SYMS if (sexp_isymbolp(a) && sexp_lsymbolp(b)) - res = sexp_object_compare(ctx, sexp_symbol_string(b), - sexp_write_to_string(ctx, a)); + res = strcmp(sexp_string_data(sexp_write_to_string(ctx, a)), + sexp_string_data(sexp_symbol_string(b))); else #endif res = -1;