diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-07-14 13:34:21 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-07-14 13:34:21 +0900 |
| commit | 4e7050fe0c56a9403f182d3f79a22a4196d377f0 (patch) | |
| tree | 0e22f2697fd9c135d7437a5b7c44d30a6e421008 /src | |
| parent | a0754986134fbe6b65992b19338c97d596f4ef60 (diff) | |
| download | mruby-4e7050fe0c56a9403f182d3f79a22a4196d377f0.tar.gz mruby-4e7050fe0c56a9403f182d3f79a22a4196d377f0.zip | |
mrb_get_args: allow d!
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/class.c b/src/class.c index b5f5f5287..b306cb489 100644 --- a/src/class.c +++ b/src/class.c @@ -726,6 +726,14 @@ mrb_get_args(mrb_state *mrb, const char *format, ...) datap = va_arg(ap, void**); type = va_arg(ap, struct mrb_data_type const*); + if (*format == '!') { + format++; + if (i < argc && mrb_nil_p(*sp)) { + *datap = 0; + i++; + break; + } + } if (i < argc) { *datap = mrb_data_get_ptr(mrb, *sp++, type); ++i; |
