got comparison order wrong in the isymbol vs. lsymbol case

This commit is contained in:
Alex Shinn 2010-06-23 13:08:52 +00:00
parent 565ed858fe
commit e7f588c6f2

View file

@ -84,8 +84,8 @@ static int sexp_object_compare (sexp ctx, sexp a, sexp b) {
} }
#if SEXP_USE_HUFF_SYMS #if SEXP_USE_HUFF_SYMS
} else if (sexp_lsymbolp(a) && sexp_isymbolp(b)) { } else if (sexp_lsymbolp(a) && sexp_isymbolp(b)) {
res = sexp_object_compare(ctx, sexp_symbol_string(a), res = strcmp(sexp_string_data(sexp_symbol_string(a)),
sexp_write_to_string(ctx, b)); sexp_string_data(sexp_write_to_string(ctx, b)));
#endif #endif
} else { } else {
res = 1; res = 1;
@ -93,8 +93,8 @@ static int sexp_object_compare (sexp ctx, sexp a, sexp b) {
} else if (sexp_pointerp(b)) { } else if (sexp_pointerp(b)) {
#if SEXP_USE_HUFF_SYMS #if SEXP_USE_HUFF_SYMS
if (sexp_isymbolp(a) && sexp_lsymbolp(b)) if (sexp_isymbolp(a) && sexp_lsymbolp(b))
res = sexp_object_compare(ctx, sexp_symbol_string(b), res = strcmp(sexp_string_data(sexp_write_to_string(ctx, a)),
sexp_write_to_string(ctx, a)); sexp_string_data(sexp_symbol_string(b)));
else else
#endif #endif
res = -1; res = -1;