dgtized (owner)

Revisions

  • 2de99b Wed May 13 14:12:21 -0700 2009
  • c1c2d7 Wed May 13 14:11:21 -0700 2009
gist: 111302 Download_button fork
public
Public Clone URL: git://gist.github.com/111302.git
Embed All Files: show embed
Text only #
1
2
3
4
5
6
7
$ make
gcc -I. -I/home/clgc/languages/rbx/vm/capi -I/home/clgc/languages/rbx/vm/capi -I. -ggdb3 -O2 -c rbtree.c
rbtree.c: In function ‘rbtree_compare_function’:
rbtree.c:295: error: invalid type argument of ‘->’ (have ‘int’)
rbtree.c:296: error: invalid type argument of ‘->’ (have ‘int’)
make: *** [rbtree.o] Error 1
 
C #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static int rbtree_compare_function(VALUE a, VALUE b) {
if (a == b) return 0;
if (FIXNUM_P(a) && FIXNUM_P(b)) {
long x = FIX2LONG(a), y = FIX2LONG(b);
if (x == y) return 0;
if (x > y) return 1;
return -1;
}
if (TYPE(a) == T_STRING && RBASIC(a)->klass == rb_cString &&
TYPE(b) == T_STRING && RBASIC(b)->klass == rb_cString) {
return rb_str_cmp(a, b);
}
return FIX2INT(rb_funcall((VALUE) a, id_compare_operator, 1, (VALUE) b));
}