summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--internal.h4
-rw-r--r--ruby.c2
-rw-r--r--vm_args.c4
4 files changed, 11 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index da5cb955ad..874c15b9f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sun Nov 23 10:46:23 2014 Eric Wong <e@80x24.org>
+
+ * internal.h (struct rb_execarg): 160 => 144 bytes on x86-64
+ * ruby.c (struct load_file_arg): 48 => 40 bytes on x86-64
+ * vm_args.c (struct args_info): ditto
+
Sun Nov 23 07:46:54 2014 Andy Maloney <asmaloney@gmail.com>
* io.c (rb_io_sysread): Remove redundant assignment of 'n'.
diff --git a/internal.h b/internal.h
index e7b866bdd6..af357cd9ac 100644
--- a/internal.h
+++ b/internal.h
@@ -884,7 +884,6 @@ VALUE rb_block_clear_env_self(VALUE proc);
#define RB_MAX_GROUPS (65536)
struct rb_execarg {
- int use_shell;
union {
struct {
VALUE shell_script;
@@ -900,6 +899,7 @@ struct rb_execarg {
VALUE envp_str;
VALUE envp_buf;
VALUE dup2_tmpbuf;
+ unsigned use_shell : 1;
unsigned pgroup_given : 1;
unsigned umask_given : 1;
unsigned unsetenv_others_given : 1;
@@ -916,11 +916,11 @@ struct rb_execarg {
mode_t umask_mask;
rb_uid_t uid;
rb_gid_t gid;
+ int close_others_maxhint;
VALUE fd_dup2;
VALUE fd_close;
VALUE fd_open;
VALUE fd_dup2_child;
- int close_others_maxhint;
VALUE env_modification; /* Qfalse or [[k1,v1], ...] */
VALUE chdir_dir;
};
diff --git a/ruby.c b/ruby.c
index 4a19276f50..b2f485076d 100644
--- a/ruby.c
+++ b/ruby.c
@@ -1510,9 +1510,9 @@ struct load_file_arg {
VALUE parser;
VALUE fname;
int script;
+ int xflag;
struct cmdline_options *opt;
VALUE f;
- int xflag;
};
static VALUE
diff --git a/vm_args.c b/vm_args.c
index e4d7fedf0f..207d3ffcde 100644
--- a/vm_args.c
+++ b/vm_args.c
@@ -11,12 +11,12 @@
struct args_info {
/* basic args info */
rb_call_info_t *ci;
- int argc;
VALUE *argv;
+ int argc;
/* additional args info */
- VALUE *kw_argv;
int rest_index;
+ VALUE *kw_argv;
VALUE rest;
};