projects
/
ruby-eet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Prefer rb_funcall2() over rb_funcall().
[ruby-eet.git]
/
ext
/
ext.c
diff --git
a/ext/ext.c
b/ext/ext.c
index 0ab91b3ad66c6525c3c464723c0961c09f7e2765..e99d41ccf618604a1d9b40413abc1c8d79bf45f4 100644
(file)
--- a/
ext/ext.c
+++ b/
ext/ext.c
@@
-1,7
+1,5
@@
/*
/*
- * $Id: ext.c 74 2006-05-13 10:34:36Z tilman $
- *
- * Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
+ * Copyright (c) 2005-2007 Tilman Sauerbeck (tilman at code-monkey de)
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
@@
-28,9
+26,9
@@
#include <st.h>
#include <locale.h>
#include <st.h>
#include <locale.h>
-#define CHECK_
KEY
(key) \
+#define CHECK_
NO_BIN0
(key) \
if (rb_funcall (key, id_include, 1, INT2FIX (0)) == Qtrue) \
if (rb_funcall (key, id_include, 1, INT2FIX (0)) == Qtrue) \
- rb_raise (rb_eArgError,
"key
must not contain binary zeroes");
+ rb_raise (rb_eArgError,
#key "
must not contain binary zeroes");
#define CHECK_CLOSED(ef) \
if (!*(ef)) \
#define CHECK_CLOSED(ef) \
if (!*(ef)) \
@@
-189,7
+187,7
@@
c_close (VALUE self)
}
static VALUE
}
static VALUE
-get_keys (Eet_File *ef, char *glob)
+get_keys (Eet_File *ef, c
onst c
har *glob)
{
VALUE ret;
char **keys;
{
VALUE ret;
char **keys;
@@
-263,7
+261,7
@@
c_delete (VALUE self, VALUE key)
CHECK_CLOSED (ef);
ckey = StringValuePtr (key);
CHECK_CLOSED (ef);
ckey = StringValuePtr (key);
- CHECK_
KEY
(key);
+ CHECK_
NO_BIN0
(key);
if (!eet_delete (*ef, ckey))
rb_raise (rb_eIOError, "cannot delete entry - %s", ckey);
if (!eet_delete (*ef, ckey))
rb_raise (rb_eIOError, "cannot delete entry - %s", ckey);
@@
-292,7
+290,7
@@
c_read (VALUE self, VALUE key)
CHECK_CLOSED (ef);
ckey = StringValuePtr (key);
CHECK_CLOSED (ef);
ckey = StringValuePtr (key);
- CHECK_
KEY
(key);
+ CHECK_
NO_BIN0
(key);
data = eet_read (*ef, ckey, &size);
if (!data)
data = eet_read (*ef, ckey, &size);
if (!data)
@@
-332,7
+330,7
@@
c_write (int argc, VALUE *argv, VALUE self)
comp = Qtrue;
ckey = StringValuePtr (key);
comp = Qtrue;
ckey = StringValuePtr (key);
- CHECK_
KEY
(key);
+ CHECK_
NO_BIN0
(key);
cbuf = StringValuePtr (buf);
n = eet_write (*ef, ckey,
cbuf = StringValuePtr (buf);
n = eet_write (*ef, ckey,
@@
-363,13
+361,14
@@
c_read_image (VALUE self, VALUE key)
Eet_File **ef = NULL;
void *data;
char *ckey;
Eet_File **ef = NULL;
void *data;
char *ckey;
- int w = 0, h = 0, has_alpha = 0, level = 0, quality = 0, lossy = 0;
+ unsigned int w = 0, h = 0;
+ int has_alpha = 0, level = 0, quality = 0, lossy = 0;
Data_Get_Struct (self, Eet_File *, ef);
CHECK_CLOSED (ef);
ckey = StringValuePtr (key);
Data_Get_Struct (self, Eet_File *, ef);
CHECK_CLOSED (ef);
ckey = StringValuePtr (key);
- CHECK_
KEY
(key);
+ CHECK_
NO_BIN0
(key);
data = eet_data_image_read (*ef, ckey, &w, &h,
&has_alpha, &level, &quality,
data = eet_data_image_read (*ef, ckey, &w, &h,
&has_alpha, &level, &quality,
@@
-425,7
+424,7
@@
c_write_image (int argc, VALUE *argv, VALUE self)
has_alpha = Qfalse;
ckey = StringValuePtr (key);
has_alpha = Qfalse;
ckey = StringValuePtr (key);
- CHECK_
KEY
(key);
+ CHECK_
NO_BIN0
(key);
cbuf = StringValuePtr (buf);
Check_Type (w, T_FIXNUM);
Check_Type (h, T_FIXNUM);
cbuf = StringValuePtr (buf);
Check_Type (w, T_FIXNUM);
Check_Type (h, T_FIXNUM);
@@
-467,8
+466,7
@@
chunk_init (VALUE self, VALUE tag, VALUE data)
StringValue (tag);
StringValue (data);
StringValue (tag);
StringValue (data);
- if (rb_funcall (tag, id_include, 1, INT2FIX (0)) == Qtrue)
- rb_raise (rb_eArgError, "tag must not contain binary zeroes");
+ CHECK_NO_BIN0 (tag);
/* libeet uses a signed 32bit integer to store the
* chunk size, so make sure we don't overflow it
/* libeet uses a signed 32bit integer to store the
* chunk size, so make sure we don't overflow it
@@
-503,7
+501,7
@@
chunk_to_s (VALUE self)
buf_len = 9 + tag->len + data->len;
ret = rb_str_buf_new (buf_len);
buf_len = 9 + tag->len + data->len;
ret = rb_str_buf_new (buf_len);
- buf = RSTRING (ret)->ptr;
+ buf =
(unsigned char *)
RSTRING (ret)->ptr;
RSTRING (ret)->len = buf_len;
memcpy (buf, "CHnK", 4);
RSTRING (ret)->len = buf_len;
memcpy (buf, "CHnK", 4);
@@
-559,13
+557,13
@@
c_to_eet (VALUE self)
long i;
#endif
long i;
#endif
- props = rb_funcall
(self, id_to_eet_properties, 0
);
+ props = rb_funcall
2 (self, id_to_eet_properties, 0, NULL
);
if (rb_obj_is_kind_of (props, rb_cHash) == Qfalse ||
!RHASH (props)->tbl->num_entries)
rb_raise (ePropError, "invalid EET properties");
if (rb_obj_is_kind_of (props, rb_cHash) == Qfalse ||
!RHASH (props)->tbl->num_entries)
rb_raise (ePropError, "invalid EET properties");
- name = rb_funcall
(self, id_to_eet_name, 0
);
+ name = rb_funcall
2 (self, id_to_eet_name, 0, NULL
);
StringValue (name);
if (!RSTRING (name)->len ||
StringValue (name);
if (!RSTRING (name)->len ||
@@
-577,7
+575,7
@@
c_to_eet (VALUE self)
#ifdef HAVE_RB_HASH_FOREACH
rb_hash_foreach (props, for_each_prop, stream);
#else
#ifdef HAVE_RB_HASH_FOREACH
rb_hash_foreach (props, for_each_prop, stream);
#else
- keys = RARRAY (rb_funcall
(props, id_keys, 0
));
+ keys = RARRAY (rb_funcall
2 (props, id_keys, 0, NULL
));
for (i = 0; i < keys->len; i++)
for_each_prop (keys->ptr[i],
for (i = 0; i < keys->len; i++)
for_each_prop (keys->ptr[i],
@@
-592,18
+590,18
@@
c_to_eet (VALUE self)
chunk = rb_class_new_instance (2, args, cChunk);
chunk = rb_class_new_instance (2, args, cChunk);
- return rb_funcall
(chunk, id_to_s, 0
);
+ return rb_funcall
2 (chunk, id_to_s, 0, NULL
);
}
static VALUE
int_to_eet_chunks (int argc, VALUE *argv, VALUE self)
{
VALUE tag, type = Qnil, ary, args[2], chunk;
}
static VALUE
int_to_eet_chunks (int argc, VALUE *argv, VALUE self)
{
VALUE tag, type = Qnil, ary, args[2], chunk;
- char *cfmt = "V";
+ c
onst c
har *cfmt = "V";
rb_scan_args (argc, argv, "11", &tag, &type);
rb_scan_args (argc, argv, "11", &tag, &type);
- ary = rb_ary_new
3 (1,
self);
+ ary = rb_ary_new
4 (1, &
self);
if (type == sym_char)
cfmt = "c";
if (type == sym_char)
cfmt = "c";
@@
-616,7
+614,7
@@
int_to_eet_chunks (int argc, VALUE *argv, VALUE self)
args[1] = rb_funcall (ary, id_pack, 1, rb_str_new2 (cfmt));
chunk = rb_class_new_instance (2, args, cChunk);
args[1] = rb_funcall (ary, id_pack, 1, rb_str_new2 (cfmt));
chunk = rb_class_new_instance (2, args, cChunk);
- return rb_ary_new
3 (1,
chunk);
+ return rb_ary_new
4 (1, &
chunk);
}
static VALUE
}
static VALUE
@@
-646,7
+644,7
@@
float_to_eet_chunks (int argc, VALUE *argv, VALUE self)
args[1] = rb_str_new (buf, len);
chunk = rb_class_new_instance (2, args, cChunk);
args[1] = rb_str_new (buf, len);
chunk = rb_class_new_instance (2, args, cChunk);
- return rb_ary_new
3 (1,
chunk);
+ return rb_ary_new
4 (1, &
chunk);
}
void
}
void