summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/dir.c b/dir.c
index 56dfe614d5..6734559a0b 100644
--- a/dir.c
+++ b/dir.c
@@ -2755,10 +2755,12 @@ dir_globs(long argc, const VALUE *argv, VALUE base, int flags)
static void
dir_glob_options(VALUE opt, VALUE *base, int *flags)
{
- ID kw[2];
+ static ID kw[2];
VALUE args[2];
- kw[0] = rb_intern("base");
- if (flags) kw[1] = rb_intern("flags");
+ if (!kw[0]) {
+ kw[0] = rb_intern_const("base");
+ kw[1] = rb_intern_const("flags");
+ }
rb_get_kwargs(opt, kw, 0, flags ? 2 : 1, args);
if (args[0] == Qundef || NIL_P(args[0])) {
*base = Qnil;