diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-08-30 10:42:09 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-08-30 10:42:09 +0000 |
commit | e8550265002a53f0a7e736aeb6b9b711b6bacfab (patch) | |
tree | 313b9622abf265d1e91ca27f9b8becaae738ce6f /ext | |
parent | f5f30e580f90e2022f2c32935d5ba0e1eb00f1ed (diff) |
* ext/Win32API/Win32API.c (Win32API_Call): RSTRING()->ptr may be
NULL.
* ext/nkf/nkf.c (rb_nkf_guess): ditto.
* ext/readline/readline.c (readline_s_set_completion_append_character):
ditto.
* ext/socket/socket.c (sock_s_getaddrinfo, sock_s_getnameinfo):
ditto.
* ext/tcltklib/tcltklib.c (ip_toUTF8, ip_fromUTF8): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r-- | ext/Win32API/Win32API.c | 2 | ||||
-rw-r--r-- | ext/nkf/nkf.c | 1 | ||||
-rw-r--r-- | ext/readline/readline.c | 4 | ||||
-rw-r--r-- | ext/socket/socket.c | 18 | ||||
-rw-r--r-- | ext/tcltklib/tcltklib.c | 2 |
5 files changed, 13 insertions, 14 deletions
diff --git a/ext/Win32API/Win32API.c b/ext/Win32API/Win32API.c index b9f16e2519..179dd49641 100644 --- a/ext/Win32API/Win32API.c +++ b/ext/Win32API/Win32API.c @@ -249,7 +249,7 @@ Win32API_Call(argc, argv, obj) } else { StringValue(str); rb_str_modify(str); - pParam = RSTRING(str)->ptr; + pParam = StringValuePtr(str) } #if defined(_MSC_VER) || defined(__LCC__) #if defined(_M_IX86) diff --git a/ext/nkf/nkf.c b/ext/nkf/nkf.c index 50723467cd..c71a5119aa 100644 --- a/ext/nkf/nkf.c +++ b/ext/nkf/nkf.c @@ -104,6 +104,7 @@ rb_nkf_guess(obj, src) StringValue(src); p = RSTRING(src)->ptr; pend = p + RSTRING(src)->len; + if (p == pend) return INT2FIX(_UNKNOWN); #define INCR do {\ p++;\ diff --git a/ext/readline/readline.c b/ext/readline/readline.c index 0772d58bcf..2f460ea3e0 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -191,11 +191,9 @@ readline_s_set_completion_append_character(self, str) VALUE self, str; { #ifdef READLINE_21_OR_LATER - if (NIL_P(str)) { + if (NIL_P(str) || !StringValuePtr(str) || !RSTRING(str)->len) { rl_completion_append_character = '\0'; } else { - StringValue(str); - rl_completion_append_character = RSTRING(str)->ptr[0]; } diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 1e91c38c67..2e9731dbc4 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -2133,7 +2133,7 @@ sock_s_getaddrinfo(argc, argv) { VALUE host, port, family, socktype, protocol, flags, ret; char hbuf[1024], pbuf[1024]; - char *hptr, *pptr; + char *hptr, *pptr, *ap; struct addrinfo hints, *res; int error; @@ -2167,13 +2167,12 @@ sock_s_getaddrinfo(argc, argv) else if (FIXNUM_P(family)) { hints.ai_family = FIX2INT(family); } - else { - StringValue(family); - if (strcmp(RSTRING(family)->ptr, "AF_INET") == 0) { + else if ((ap = StringValuePtr(family)) != 0) { + if (strcmp(ap, "AF_INET") == 0) { hints.ai_family = PF_INET; } #ifdef INET6 - else if (strcmp(RSTRING(family)->ptr, "AF_INET6") == 0) { + else if (strcmp(ap, "AF_INET6") == 0) { hints.ai_family = PF_INET6; } #endif @@ -2211,7 +2210,7 @@ sock_s_getnameinfo(argc, argv) int error; struct sockaddr_storage ss; struct sockaddr *sap; - char *ep; + char *ep, *ap; sa = flags = Qnil; rb_scan_args(argc, argv, "11", &sa, &flags); @@ -2287,13 +2286,12 @@ sock_s_getnameinfo(argc, argv) else if (FIXNUM_P(af)) { hints.ai_family = FIX2INT(af); } - else { - StringValue(af); - if (strcmp(RSTRING(af)->ptr, "AF_INET") == 0) { + else if ((ap = StringValuePtr(af)) != 0) { + if (strcmp(ap, "AF_INET") == 0) { hints.ai_family = PF_INET; } #ifdef INET6 - else if (strcmp(RSTRING(af)->ptr, "AF_INET6") == 0) { + else if (ap, "AF_INET6") == 0) { hints.ai_family = PF_INET6; } #endif diff --git a/ext/tcltklib/tcltklib.c b/ext/tcltklib/tcltklib.c index 1b59006009..b75af3fc77 100644 --- a/ext/tcltklib/tcltklib.c +++ b/ext/tcltklib/tcltklib.c @@ -565,6 +565,7 @@ ip_toUTF8(self, str, encodename) StringValue(encodename); StringValue(str); encoding = Tcl_GetEncoding(interp, RSTRING(encodename)->ptr); + if (!RSTRING(str)->len) return str; buf = ALLOCA_N(char,strlen(RSTRING(str)->ptr)+1); strcpy(buf, RSTRING(str)->ptr); @@ -598,6 +599,7 @@ ip_fromUTF8(self, str, encodename) StringValue(encodename); StringValue(str); encoding = Tcl_GetEncoding(interp,RSTRING(encodename)->ptr); + if (!RSTRING(str)->len) return str; buf = ALLOCA_N(char,strlen(RSTRING(str)->ptr)+1); strcpy(buf,RSTRING(str)->ptr); |