From 322021e5d5e81e8e6af608d7170d63b9dff724f8 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Mon, 13 Jan 2014 00:48:00 +0900 Subject: [PATCH] pic_get_args supports port object --- src/vm.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/vm.c b/src/vm.c index 527e8f40..5d739e0b 100644 --- a/src/vm.c +++ b/src/vm.c @@ -7,6 +7,7 @@ #include "picrin.h" #include "picrin/pair.h" #include "picrin/proc.h" +#include "picrin/port.h" #include "picrin/irep.h" #include "picrin/blob.h" #include "picrin/var.h" @@ -276,6 +277,24 @@ pic_get_args(pic_state *pic, const char *format, ...) } break; } + case 'p': + { + struct pic_port **p; + pic_value v; + + p = va_arg(ap, struct pic_port **); + if (i < argc) { + v = GET_OPERAND(pic,i); + if (pic_port_p(v)) { + *p = pic_port_ptr(v); + } + else { + pic_error(pic, "pic_get_args, expected port"); + } + i++; + } + break; + } default: { pic_error(pic, "pic_get_args: invalid argument specifier given");