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

ruby-changes:50207

From: usa <ko1@a...>
Date: Fri, 9 Feb 2018 03:51:37 +0900 (JST)
Subject: [ruby-changes:50207] usa:r62325 (trunk): refoctoring

usa	2018-02-09 03:51:33 +0900 (Fri, 09 Feb 2018)

  New Revision: 62325

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=62325

  Log:
    refoctoring
    
    * mjit.c (compile_c_to_so): refactored.
    
    * mjit.c (init_header_filename): xmalloc never returns NULL.
    
    * mjit.c (init_header_filename): report the filename of the header if failed.

  Modified files:
    trunk/mjit.c
Index: mjit.c
===================================================================
--- mjit.c	(revision 62324)
+++ mjit.c	(revision 62325)
@@ -659,37 +659,40 @@ compile_c_to_so(const char *c_file, cons https://github.com/ruby/ruby/blob/trunk/mjit.c#L659
 {
     int exit_code;
     const char *input[] = {NULL, NULL};
-    const char *output[] = {"-o", NULL, NULL};
+    const char *output[] = {
+#ifndef _MSC_VER
+        "-o",
+#endif
+        NULL, NULL};
     const char *libs[] = {
-#ifdef _MSC_VER
+#ifdef _WIN32
+# ifdef _MSC_VER
         LIBRUBYARG_SHARED,
         "-link",
         libruby_installed,
         libruby_build,
-#else
-# ifdef _WIN32
+# else
         /* Look for ruby.dll.a in build and install directories. */
         libruby_installed,
         libruby_build,
         /* Link to ruby.dll.a, because Windows DLLs don't allow unresolved symbols. */
         LIBRUBYARG_SHARED,
         "-lmsvcrt",
-#  ifdef __GNUC__
         "-lgcc",
-#  endif
 # endif
 #endif
         NULL};
     char **args;
+#ifdef _MSC_VER
+    char *p;
+#endif
 
     input[0] = c_file;
 #ifdef _MSC_VER
-    {
-        char *p = (char *)output[0] = xmalloc(3 + strlen(so_file) + 1);
-        p = append_str(p, "-Fe");
-        p = append_str(p, so_file);
-        *p = '\0';
-    }
+    p = (char *)output[0] = xmalloc(3 + strlen(so_file) + 1);
+    p = append_str(p, "-Fe");
+    p = append_str(p, so_file);
+    *p = '\0';
     args = form_args(4, (mjit_opts.debug ? VC_COMMON_ARGS_DEBUG : VC_COMMON_ARGS),
                      output, input, libs);
 #else
@@ -1150,13 +1153,12 @@ init_header_filename(void) https://github.com/ruby/ruby/blob/trunk/mjit.c#L1153
     verlen = strlen(ruby_version);
 
     header_file = xmalloc(baselen + sizeof(header_name) + verlen + 2);
-    if (header_file == NULL)
-        return;
     p = append_str2(header_file, basedir, baselen);
     p = append_str2(p, header_name, sizeof(header_name)-1);
     p = append_str2(p, ruby_version, verlen);
     p = append_str2(p, ".h", 3);
     if ((fd = rb_cloexec_open(header_file, O_RDONLY, 0)) < 0) {
+        verbose(2, "Cannot access header file %s\n", header_file);
         xfree(header_file);
         header_file = NULL;
         return;

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

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