summaryrefslogtreecommitdiffhomepage
path: root/src/string.c
diff options
context:
space:
mode:
authorYukihiro Matz Matsumoto <[email protected]>2013-03-14 19:33:38 +0900
committerYukihiro Matz Matsumoto <[email protected]>2013-03-14 19:33:38 +0900
commit9d0bbdb7f8b54631d639d3ed3038b6546ee4558d (patch)
tree1691225bfb97439d7f73ac727b5aa0615085fce7 /src/string.c
parent93e9174c57709e6867459c55fb88149234483c1d (diff)
downloadmruby-9d0bbdb7f8b54631d639d3ed3038b6546ee4558d.tar.gz
mruby-9d0bbdb7f8b54631d639d3ed3038b6546ee4558d.zip
use size_t for string length C API
Diffstat (limited to 'src/string.c')
-rw-r--r--src/string.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/src/string.c b/src/string.c
index 89bcf0ca6..cd70e63f6 100644
--- a/src/string.c
+++ b/src/string.c
@@ -167,7 +167,7 @@ mrb_str_buf_new(mrb_state *mrb, int capa)
}
static void
-str_buf_cat(mrb_state *mrb, struct RString *s, const char *ptr, mrb_int len)
+str_buf_cat(mrb_state *mrb, struct RString *s, const char *ptr, size_t len)
{
mrb_int capa;
mrb_int total;
@@ -202,7 +202,7 @@ str_buf_cat(mrb_state *mrb, struct RString *s, const char *ptr, mrb_int len)
}
mrb_value
-mrb_str_buf_cat(mrb_state *mrb, mrb_value str, const char *ptr, mrb_int len)
+mrb_str_buf_cat(mrb_state *mrb, mrb_value str, const char *ptr, size_t len)
{
if (len == 0) return str;
str_buf_cat(mrb, mrb_str_ptr(str), ptr, len);
@@ -210,14 +210,10 @@ mrb_str_buf_cat(mrb_state *mrb, mrb_value str, const char *ptr, mrb_int len)
}
mrb_value
-mrb_str_new(mrb_state *mrb, const char *p, mrb_int len)
+mrb_str_new(mrb_state *mrb, const char *p, size_t len)
{
struct RString *s;
- if (len < 0) {
- len = 0;
- }
-
s = str_new(mrb, p, len);
return mrb_obj_value(s);
}
@@ -237,8 +233,8 @@ mrb_str_new_cstr(mrb_state *mrb, const char *p)
if (p) {
len = strlen(p);
- if (len > MRB_INT_MAX) {
- len = MRB_INT_MAX;
+ if ((mrb_int)len < 0) {
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "argument too big");
}
}
else {
@@ -2550,14 +2546,7 @@ mrb_str_cat(mrb_state *mrb, mrb_value str, const char *ptr, mrb_int len)
mrb_value
mrb_str_cat2(mrb_state *mrb, mrb_value str, const char *ptr)
{
- size_t len;
-
- len = strlen(ptr);
- if (len > MRB_INT_MAX) {
- len = MRB_INT_MAX;
- }
-
- return mrb_str_cat(mrb, str, ptr, len);
+ return mrb_str_cat(mrb, str, ptr, strlen(ptr));
}
mrb_value