Change second argument to %l of mrb_vformat() to size_t from mrb_int

- `size_t` is more commonly used.
- `len` argument of `mrb_str_new()` is `size_t`.

NOTE:

The test for `%l` is temporarily disabled because adding a new type to
`mrbgems/mruby-test/vformat.c` causes an error (memory error?) on Visual
Studio 2017 in AppVeyor.
This commit is contained in:
KOBAYASHI Shuji
2019-08-03 17:46:11 +09:00
parent f6c41c1862
commit 1e9cb74cc6
4 changed files with 14 additions and 6 deletions
+4 -3
View File
@@ -285,7 +285,7 @@ mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg)
* d | int |
* f | mrb_float |
* i | mrb_int |
* l | char*, mrb_int | Arguments are string and length.
* l | char*, size_t | Arguments are string and length.
* n | mrb_sym |
* s | char* | Argument is NUL terminated string.
* t | mrb_value | Convert to type (class) of object.
@@ -303,8 +303,9 @@ mrb_vformat(mrb_state *mrb, const char *format, va_list ap)
{
const char *chars, *p = format, *b = format, *e;
char ch;
size_t len;
mrb_int i;
struct RClass *cls;
mrb_int len, i;
mrb_bool inspect = FALSE;
mrb_value result = mrb_str_new_capa(mrb, 128), obj, str;
int ai = mrb_gc_arena_save(mrb);
@@ -335,7 +336,7 @@ mrb_vformat(mrb_state *mrb, const char *format, va_list ap)
#endif
case 'l':
chars = va_arg(ap, char*);
len = va_arg(ap, mrb_int);
len = va_arg(ap, size_t);
L_cat:
if (inspect) {
obj = mrb_str_new(mrb, chars, len);