kgio RubyGem user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
* [PATCH] cleanup: avoid shadowing rb_ary_subseq
@ 2015-01-10 11:14 Eric Wong
  0 siblings, 0 replies; only message in thread
From: Eric Wong @ 2015-01-10 11:14 UTC (permalink / raw)
  To: kgio-public; +Cc: Eric Wong

Define a MY_ARY_SUBSEQ macro which checks arg counts correctly and
avoids throwing off people who may potentially want to debug this
code.
---
 ext/kgio/writev.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/ext/kgio/writev.c b/ext/kgio/writev.c
index 9c1ca15..027cdb5 100644
--- a/ext/kgio/writev.c
+++ b/ext/kgio/writev.c
@@ -27,7 +27,9 @@ static inline VALUE my_ary_subseq(VALUE ary, long idx, long len)
 
        return rb_ary_aref(2, args, ary);
 }
-#define rb_ary_subseq my_ary_subseq
+#define MY_ARY_SUBSEQ(ary,idx,len) my_ary_subseq((ary),(idx),(len))
+#else
+#define MY_ARY_SUBSEQ(ary,idx,len) rb_ary_subseq((ary),(idx),(len))
 #endif
 
 static VALUE sym_wait_writable;
@@ -105,7 +107,7 @@ static void prepare_writev(struct wrv_args *a, VALUE io, VALUE ary)
 
 	if (TYPE(ary) == T_ARRAY)
 		/* rb_ary_subseq will not copy array unless it modified */
-		a->buf = rb_ary_subseq(ary, 0, RARRAY_LEN(ary));
+		a->buf = MY_ARY_SUBSEQ(ary, 0, RARRAY_LEN(ary));
 	else
 		a->buf = rb_Array(ary);
 
@@ -188,7 +190,7 @@ static long trim_writev_buffer(struct wrv_args *a, ssize_t n)
 
 	/* partially done, remove fully-written buffers */
 	if (i > 0)
-		a->buf = rb_ary_subseq(a->buf, i, ary_len - i);
+		a->buf = MY_ARY_SUBSEQ(a->buf, i, ary_len - i);
 
 	/* setup+replace partially written buffer */
 	if (n < 0) {
-- 
EW


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-01-10 11:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-10 11:14 [PATCH] cleanup: avoid shadowing rb_ary_subseq Eric Wong

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/kgio.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).