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

ruby-changes:15176

From: nagai <ko1@a...>
Date: Fri, 26 Mar 2010 04:56:59 +0900 (JST)
Subject: [ruby-changes:15176] Ruby:r27056 (ruby_1_8): * ext/tk/extconf.rb: fix [Bug #2997]. Thanks, Michael Graff.

nagai	2010-03-26 04:56:41 +0900 (Fri, 26 Mar 2010)

  New Revision: 27056

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

  Log:
    * ext/tk/extconf.rb: fix [ruby-core:28901] [Bug #2997]. Thanks, Michael Graff.
    * ext/tk/tcltklib.c: use xfree() for memories allocated by ALLOC().
    * ext/tk/tkutil/tkutil.c: ditto.
    * ext/tk/lib/tkextlib/version.rb: forgot updating.

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/ext/tk/extconf.rb
    branches/ruby_1_8/ext/tk/lib/tkextlib/version.rb
    branches/ruby_1_8/ext/tk/tcltklib.c
    branches/ruby_1_8/ext/tk/tkutil/tkutil.c

Index: ruby_1_8/ext/tk/tcltklib.c
===================================================================
--- ruby_1_8/ext/tk/tcltklib.c	(revision 27055)
+++ ruby_1_8/ext/tk/tcltklib.c	(revision 27056)
@@ -4,17 +4,19 @@
  *              Oct. 24, 1997   Y. Matsumoto
  */
 
-#define TCLTKLIB_RELEASE_DATE "2009-10-27"
+#define TCLTKLIB_RELEASE_DATE "2010-03-26"
 
 #include "ruby.h"
 
 #ifdef HAVE_RUBY_ENCODING_H
 #include "ruby/encoding.h"
 #endif
-#ifndef HAVE_RUBY_RUBY_H
-#undef RUBY_RELEASE_DATE
-#include "version.h"
+#ifndef RUBY_VERSION
+#define RUBY_VERSION "(unknown version)"
 #endif
+#ifndef RUBY_RELEASE_DATE
+#define RUBY_RELEASE_DATE "unknown release-date"
+#endif
 
 #ifdef RUBY_VM
 static VALUE rb_thread_critical; /* dummy */
@@ -1064,7 +1066,7 @@
 	Tcl_DecrRefCount(cmd_obj);
 
 #if USE_RUBY_ALLOC
-        free(argv);
+        xfree(argv);
 #else /* not USE_RUBY_ALLOC */
 #if 0 /* use Tcl_EventuallyFree */
 	Tcl_EventuallyFree((ClientData)argv, TCL_DYNAMIC); /* XXXXXXXX */
@@ -1099,7 +1101,7 @@
         ptr->return_value = (*(info->proc))(info->clientData, ptr->ip, 2, argv);
 
 #if USE_RUBY_ALLOC
-        free(argv);
+        xfree(argv);
 #else /* not USE_RUBY_ALLOC */
 #if 0 /* use Tcl_EventuallyFree */
 	Tcl_EventuallyFree((ClientData)argv, TCL_DYNAMIC); /* XXXXXXXX */
@@ -1138,7 +1140,7 @@
                                             2, argv);
 
 #if USE_RUBY_ALLOC
-        free(argv);
+        xfree(argv);
 #else /* not USE_RUBY_ALLOC */
 #if 0 /* use Tcl_EventuallyFree */
 	Tcl_EventuallyFree((ClientData)argv, TCL_DYNAMIC); /* XXXXXXXX */
@@ -2158,7 +2160,7 @@
 
 	rb_thread_critical = ptr->thr_crit_bup;
 
-        free(ptr);
+        xfree(ptr);
         /* ckfree((char*)ptr); */
 
         return Qnil;
@@ -2201,7 +2203,7 @@
 
     rb_thread_critical = ptr->thr_crit_bup;
 
-    free(ptr);
+    xfree(ptr);
     /* ckfree((char*)ptr);*/
 
     DUMP2("finish current eventloop %lx", current_evloop);
@@ -2523,8 +2525,8 @@
         ret = rb_protect(_thread_call_proc_value, th, &status);
     }
 
-    free(q->done);
-    free(q);
+    xfree(q->done);
+    xfree(q);
     /* ckfree((char*)q->done); */
     /* ckfree((char*)q); */
 
@@ -2674,7 +2676,7 @@
     Tcl_AppendResult(interp, Tcl_DStringValue(&dstr), (char*)NULL);
     DUMP2("error message:%s", Tcl_DStringValue(&dstr));
     Tcl_DStringFree(&dstr);
-    free(buf);
+    xfree(buf);
     /* ckfree(buf); */
 
 #else /* TCL_VERSION <= 8.0 */
@@ -2803,7 +2805,7 @@
             /* buf = ckalloc(sizeof(char) * 256); */
             sprintf(buf, "unknown loncaljmp status %d", status);
             exc = rb_exc_new2(rb_eException, buf);
-            free(buf);
+            xfree(buf);
             /* ckfree(buf); */
             break;
         }
@@ -2992,7 +2994,7 @@
     code = tcl_protect(interp, rb_eval_string, (VALUE)arg);
 
 #if TCL_MAJOR_VERSION >= 8
-    free(arg);
+    xfree(arg);
     /* ckfree(arg); */
 #endif
 
@@ -3105,7 +3107,7 @@
     memcpy(buf + 1, str, len);
     buf[len + 1] = 0;
     receiver = rb_gv_get(buf);
-    free(buf);
+    xfree(buf);
     /* ckfree(buf); */
   }
 
@@ -3227,7 +3229,7 @@
     /* evaluate the argument string by ruby */
     code = tcl_protect(interp, ip_ruby_cmd_core, (VALUE)arg);
 
-    free(arg);
+    xfree(arg);
     /* ckfree((char*)arg); */
 
     return code;
@@ -5371,7 +5373,7 @@
                   (unsigned long)Tcl_GetMaster(ptr->ip));
             DUMP2("slave IP(%lx) should not be deleted", 
                   (unsigned long)ptr->ip);
-            free(ptr);
+            xfree(ptr);
             /* ckfree((char*)ptr); */
             rb_thread_critical = thr_crit_bup;
             return;
@@ -5379,7 +5381,7 @@
 
         if (ptr->ip == (Tcl_Interp*)NULL) {
             DUMP1("ip_free is called for deleted IP");
-            free(ptr);
+            xfree(ptr);
             /* ckfree((char*)ptr); */
             rb_thread_critical = thr_crit_bup;
             return;
@@ -5393,7 +5395,7 @@
 	}
 
         ptr->ip = (Tcl_Interp*)NULL;
-        free(ptr);
+        xfree(ptr);
         /* ckfree((char*)ptr); */
 
         rb_thread_critical = thr_crit_bup;
@@ -7585,7 +7587,7 @@
     */
     Tcl_DStringFree(&dstr);
 
-    free(buf);
+    xfree(buf);
     /* ckfree(buf); */
 
     rb_thread_critical = thr_crit_bup;
@@ -7787,7 +7789,7 @@
     */
     Tcl_DStringFree(&dstr);
 
-    free(buf);
+    xfree(buf);
     /* ckfree(buf); */
 
     rb_thread_critical = thr_crit_bup;
@@ -9572,7 +9574,7 @@
 
     ret = rb_obj_freeze(rb_str_new2(info));
 
-    free(info);
+    xfree(info);
     /* ckfree(info); */
 
     return ret;
Index: ruby_1_8/ext/tk/lib/tkextlib/version.rb
===================================================================
--- ruby_1_8/ext/tk/lib/tkextlib/version.rb	(revision 27055)
+++ ruby_1_8/ext/tk/lib/tkextlib/version.rb	(revision 27056)
@@ -2,5 +2,5 @@
 # release date of tkextlib
 #
 module Tk
-  Tkextlib_RELEASE_DATE = '2009-07-12'.freeze
+  Tkextlib_RELEASE_DATE = '2010-02-01'.freeze
 end
Index: ruby_1_8/ext/tk/extconf.rb
===================================================================
--- ruby_1_8/ext/tk/extconf.rb	(revision 27055)
+++ ruby_1_8/ext/tk/extconf.rb	(revision 27056)
@@ -1,6 +1,6 @@
 ##############################################################
 # extconf.rb for tcltklib
-# release date: 2009-08-09
+# release date: 2010-03-26
 ##############################################################
 require 'mkmf'
 
@@ -999,7 +999,7 @@
   end
 
   if TkConfig_Info['TK_INCLUDE_SPEC'] && 
-      have_tk_h = try_cpp('tk.h', TclConfig_Info['TK_INCLUDE_SPEC'])
+      have_tk_h = try_cpp('tk.h', TkConfig_Info['TK_INCLUDE_SPEC'])
     $INCFLAGS << " " << TkConfig_Info['TK_INCLUDE_SPEC']
   elsif have_tk_h = have_header('tk.h')
     # find
@@ -1026,12 +1026,12 @@
   if File.exist?(dir = File.join(TkLib_Config["tcltk-framework"], 
                                  'Tcl.framework', 'Headers'))
     TclConfig_Info['TCL_INCLUDE_SPEC'] = "-I#{dir} "
-    TclConfig_Info['TK_INCLUDE_SPEC'] = "-I#{File.join(TkLib_Config['tcltk-framework'], 'Tk.framework', 'Headers')} "
+    TkConfig_Info['TK_INCLUDE_SPEC'] = "-I#{File.join(TkLib_Config['tcltk-framework'], 'Tk.framework', 'Headers')} "
   else
     dir = Dir.glob(File.join(TkLib_Config["tcltk-framework"], 
                              'Tcl.framework', '*', 'Headers'))
     TclConfig_Info['TCL_INCLUDE_SPEC'] = "-I#{dir[0]} " unless dir.empty?
-    TclConfig_Info['TK_INCLUDE_SPEC'] = "-I#{Dir.glob(File.join(TkLib_Config['tcltk-framework'], 'Tk.framework', '*', 'Headers'))[0]} "
+    TkConfig_Info['TK_INCLUDE_SPEC'] = "-I#{Dir.glob(File.join(TkLib_Config['tcltk-framework'], 'Tk.framework', '*', 'Headers'))[0]} "
   end
 
   $LDFLAGS << ' -framework Tk -framework Tcl'
@@ -1084,6 +1084,11 @@
       puts("Can't find X11 libraries. So, can't make tcltklib.so which is required by Ruby/Tk.")
       exit
     end
+
+    if TkConfig_Info['TK_XINCLUDES'] &&
+        !TkConfig_Info['TK_XINCLUDES'].strip.empty?
+      $INCFLAGS << " " << TkConfig_Info['TK_XINCLUDES'].strip
+    end
   end
 
   use_X
@@ -1400,8 +1405,8 @@
   $INSTALLFILES << ["lib/tkextlib/SUPPORT_STATUS", "$(RUBYLIBDIR)", "lib"]
 
   # create
-  $defs << %[-DRUBY_VERSION=\\"#{RUBY_VERSION}\\"]
-  $defs << %[-DRUBY_RELEASE_DATE=\\"#{RUBY_RELEASE_DATE}\\"]
+  $CPPFLAGS << %[ -DRUBY_VERSION=\\"#{RUBY_VERSION}\\"]
+  $CPPFLAGS << %[ -DRUBY_RELEASE_DATE=\\"#{RUBY_RELEASE_DATE}\\"]
 
   create_makefile("tcltklib")
 
Index: ruby_1_8/ext/tk/tkutil/tkutil.c
===================================================================
--- ruby_1_8/ext/tk/tkutil/tkutil.c	(revision 27055)
+++ ruby_1_8/ext/tk/tkutil/tkutil.c	(revision 27056)
@@ -7,7 +7,7 @@
 
 ************************************************/
 
-#define TKUTIL_RELEASE_DATE "2010-02-01"
+#define TKUTIL_RELEASE_DATE "2010-03-26"
 
 #include "ruby.h"
 
@@ -1159,11 +1159,11 @@
     if (ptr) {
       for(i = 0; i < CBSUBST_TBL_MAX; i++) {
 	if (ptr->key[i] != NULL) {
-	  free(ptr->key[i]);
+	  free(ptr->key[i]); /* allocated by malloc */
 	  ptr->key[i] = NULL;
 	}
       }
-      free(ptr);
+      xfree(ptr); /* allocated by ALLOC */
     }
 }
 
@@ -1340,7 +1340,7 @@
 
     ret = rb_str_new2(buf);
 
-    free(buf);
+    xfree(buf);
 
     return ret;
 }
@@ -1408,7 +1408,7 @@
 
     ret = rb_str_new2(buf);
 
-    free(buf);
+    xfree(buf);
 
     return ret;
 }
@@ -1462,7 +1462,7 @@
     *ptr = '\0';
 
     ret = rb_str_new2(buf);
-    free(buf);
+    xfree(buf);
     return ret;
 }
 
@@ -1506,8 +1506,8 @@
 
     ret = rb_ary_new3(2, rb_str_new2(keys_buf), rb_str_new2(buf));
 
-    free(buf);
-    free(keys_buf);
+    xfree(buf);
+    xfree(keys_buf);
 
     return ret;
 }
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 27055)
+++ ruby_1_8/ChangeLog	(revision 27056)
@@ -1,3 +1,14 @@
+Fri Mar 26 04:52:19 2010  Hidetoshi NAGAI  <nagai@a...>
+
+	* ext/tk/extconf.rb: fix [ruby-core:28901] [Bug #2997].
+	  Thanks, Michael Graff.
+
+	* ext/tk/tcltklib.c: use xfree() for memories allocated by ALLOC().
+
+	* ext/tk/tkutil/tkutil.c: ditto.
+
+	* ext/tk/lib/tkextlib/version.rb: forgot updating.
+
 Fri Mar 26 04:09:24 2010  Akinori MUSHA  <knu@i...>
 
 	* prelude.rb, Makefile.in, common.mk: Introduce prelude.rb.

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

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