[前][次][番号順一覧][スレッド一覧]

ruby-changes:21153

From: nobu <ko1@a...>
Date: Tue, 6 Sep 2011 15:55:40 +0900 (JST)
Subject: [ruby-changes:21153] nobu:r33202 (trunk): * transcode.c (load_transcoder_entry): concatenate paths directly.

nobu	2011-09-06 15:55:30 +0900 (Tue, 06 Sep 2011)

  New Revision: 33202

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33202

  Log:
    * transcode.c (load_transcoder_entry): concatenate paths directly.

  Modified files:
    trunk/ChangeLog
    trunk/transcode.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 33201)
+++ ChangeLog	(revision 33202)
@@ -1,5 +1,7 @@
-Tue Sep  6 13:15:44 2011  Nobuyoshi Nakada  <nobu@r...>
+Tue Sep  6 15:55:24 2011  Nobuyoshi Nakada  <nobu@r...>
 
+	* transcode.c (load_transcoder_entry): concatenate paths directly.
+
 	* encoding.c (load_encoding): predefined encoding names are safe.
 	  [ruby-dev:44469] [Bug #5279]
 
Index: transcode.c
===================================================================
--- transcode.c	(revision 33201)
+++ transcode.c	(revision 33202)
@@ -369,16 +369,19 @@
     if (entry->lib) {
         const char *lib = entry->lib;
         size_t len = strlen(lib);
-        char path[sizeof(transcoder_lib_prefix) + MAX_TRANSCODER_LIBNAME_LEN];
+        size_t total_len = sizeof(transcoder_lib_prefix) - 1 + len;
+        char *path;
         VALUE fn;
 
         entry->lib = NULL;
 
         if (len > MAX_TRANSCODER_LIBNAME_LEN)
             return NULL;
+        fn = rb_str_new(0, total_len);
+        path = RSTRING_PTR(fn);
         memcpy(path, transcoder_lib_prefix, sizeof(transcoder_lib_prefix) - 1);
-        memcpy(path + sizeof(transcoder_lib_prefix) - 1, lib, len + 1);
-        fn = rb_str_new2(path);
+        memcpy(path + sizeof(transcoder_lib_prefix) - 1, lib, len);
+        rb_str_set_len(fn, total_len);
         FL_UNSET(fn, FL_TAINT|FL_UNTRUSTED);
         OBJ_FREEZE(fn);
         if (!rb_require_safe(fn, rb_safe_level()))

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]