This commit is contained in:
Jonas Kulla 2014-01-02 00:11:57 +01:00
commit a0a27889a3
22 changed files with 602 additions and 100 deletions

View file

@ -226,7 +226,7 @@ static void runRMXPScripts()
VALUE scriptString = rb_ary_entry(script, 2);
int result = Z_OK;
ulong bufferLen;
unsigned long bufferLen;
while (true)
{

View file

@ -94,7 +94,7 @@ void raiseRbExc(const Exception &exc)
RbData *data = getRbData();
VALUE excClass = data->exc[excToRbExc[exc.type]];
rb_raise(excClass, exc.msg.c_str());
rb_raise(excClass, "%s", exc.msg.c_str());
}
int
@ -148,7 +148,7 @@ rb_get_args(int argc, VALUE *argv, const char *format, ...)
VALUE *str = va_arg(ap, VALUE*);
VALUE tmp = *arg;
if (!rb_type(tmp) == RUBY_T_STRING)
if (!(rb_type(tmp) == RUBY_T_STRING))
rb_raise(rb_eTypeError, "Argument %d: Expected string", argI);
*str = tmp;
@ -167,7 +167,7 @@ rb_get_args(int argc, VALUE *argv, const char *format, ...)
VALUE tmp = *arg;
if (!rb_type(tmp) == RUBY_T_STRING)
if (!(rb_type(tmp) == RUBY_T_STRING))
rb_raise(rb_eTypeError, "Argument %d: Expected string", argI);
*s = RSTRING_PTR(tmp);
@ -186,7 +186,7 @@ rb_get_args(int argc, VALUE *argv, const char *format, ...)
VALUE tmp = *arg++;
if (!rb_type(tmp) == RUBY_T_STRING)
if (!(rb_type(tmp) == RUBY_T_STRING))
rb_raise(rb_eTypeError, "Argument %d: Expected string", argI);
*s = RSTRING_PTR(tmp);

View file

@ -24,6 +24,8 @@
#include <ruby.h>
#include "exception.h"
enum RbException
{
RGSS = 0,
@ -91,7 +93,7 @@ template<class C>
static inline C *
getPrivateDataCheck(VALUE self, const rb_data_type_struct &type)
{
void *obj = rb_check_typeddata(self, &type);
void *obj = Check_TypedStruct(self, &type);
return static_cast<C*>(obj);
}
@ -195,11 +197,11 @@ rb_float_arg(VALUE arg, double *out, int argPos = 0)
switch (rb_type(arg))
{
case RUBY_T_FLOAT :
*out = rb_float_value(arg);
*out = RFLOAT_VALUE(arg);
break;
case RUBY_T_FIXNUM :
*out = rb_fix2int(arg);
*out = FIX2INT(arg);
break;
default:
@ -214,11 +216,11 @@ rb_int_arg(VALUE arg, int *out, int argPos = 0)
{
case RUBY_T_FLOAT :
// FIXME check int range?
*out = rb_num2long(arg);
*out = NUM2LONG(arg);
break;
case RUBY_T_FIXNUM :
*out = rb_fix2int(arg);
*out = FIX2INT(arg);
break;
default:

View file

@ -47,18 +47,18 @@ RB_METHOD(tableResize)
{
default:
case 1:
t->resize(rb_fix2int(argv[0]));
t->resize(FIX2INT(argv[0]));
return Qnil;
case 2:
t->resize(rb_fix2int(argv[0]),
rb_fix2int(argv[1]));
t->resize(FIX2INT(argv[0]),
FIX2INT(argv[1]));
return Qnil;
case 3:
t->resize(rb_fix2int(argv[0]),
rb_fix2int(argv[1]),
rb_fix2int(argv[2]));
t->resize(FIX2INT(argv[0]),
FIX2INT(argv[1]),
FIX2INT(argv[2]));
return Qnil;
}
}
@ -82,11 +82,11 @@ RB_METHOD(tableGetAt)
int x, y, z;
x = y = z = 0;
x = rb_num2int(argv[0]);
x = NUM2INT(argv[0]);
if (argc > 1)
y = rb_num2int(argv[1]);
y = NUM2INT(argv[1]);
if (argc > 2)
z = rb_num2int(argv[2]);
z = NUM2INT(argv[2]);
if (argc > 3)
rb_raise(rb_eArgError, "wrong number of arguments");
@ -117,21 +117,21 @@ RB_METHOD(tableSetAt)
{
default:
case 2 :
x = rb_fix2int(argv[0]);
value = rb_fix2int(argv[1]);
x = FIX2INT(argv[0]);
value = FIX2INT(argv[1]);
break;
case 3 :
x = rb_fix2int(argv[0]);
y = rb_fix2int(argv[1]);
value = rb_fix2int(argv[2]);
x = FIX2INT(argv[0]);
y = FIX2INT(argv[1]);
value = FIX2INT(argv[2]);
break;
case 4 :
x = rb_fix2int(argv[0]);
y = rb_fix2int(argv[1]);
z = rb_fix2int(argv[2]);
value = rb_fix2int(argv[3]);
x = FIX2INT(argv[0]);
y = FIX2INT(argv[1]);
z = FIX2INT(argv[2]);
value = FIX2INT(argv[3]);
break;
}