From 9fa668f34aa13367a9adc9903de9a8a782cf2910 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 10 Jan 2012 01:41:15 +0000 Subject: * ext/readline/readline.c (readline_attempted_completion_function): empty completion result does not mean memory error. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/readline/readline.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ext/readline') diff --git a/ext/readline/readline.c b/ext/readline/readline.c index fa164aec9f..c3c23e4f0a 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -667,10 +667,10 @@ readline_attempted_completion_function(const char *text, int start, int end) #endif case_fold = RTEST(rb_attr_get(mReadline, completion_case_fold)); ary = rb_funcall(proc, rb_intern("call"), 1, rb_locale_str_new_cstr(text)); - if (TYPE(ary) != T_ARRAY) + if (!RB_TYPE_P(ary, T_ARRAY)) { ary = rb_Array(ary); matches = RARRAY_LEN(ary); - if (matches == NULL) rb_memerror(); + if (matches == 0) return NULL; result = (char**)malloc((matches + 2)*sizeof(char*)); if (result == NULL) rb_raise(rb_eNoMemError, "failed to allocate memory"); for (i = 0; i < matches; i++) { -- cgit v1.2.3