107107
108108# ----- Execute The Requested Command -----------------------------------------
109109
110+
111+ JAVA_MEM=-Xmx256m
112+ JAVA_STACK=-Xss1024k
113+
110114# Split out any -J argument for passing to the JVM.
111115# Scanning for args is aborted by '--'.
112116java_args=()
113117ruby_args=()
114- while [ $# -gt 0 ]
118+ while [ $# -gt 0 ]
115119do
116120 case " $1 " in
117- # Whole following argument goes to JVM
118- -J) shift ; java_args=(" ${java_args[@]} " " ${1} " ) ;;
119121 # Stuff after '-J' in this argument goes to JVM
120- -J* ) java_args=(" ${java_args[@]} " " ${1: 2} " ) ;;
122+ -J* )
123+ val=${1: 2}
124+ if [ " ${val: 0: 4} " = " -Xmx" ]; then
125+ JAVA_MEM=$val
126+ elif [ " ${val: 0: 4} " = " -Xss" ]; then
127+ JAVA_STACK=$val
128+ else
129+ java_args=(" ${java_args[@]} " " ${1: 2} " )
130+ fi
131+ ;;
121132 # Match switches that take an argument
122133 -e|-I|-S) ruby_args=(" ${ruby_args[@]} " " $1 " " $2 " ); shift ;;
123134 # Match same switches with argument stuck together
@@ -138,14 +149,16 @@ ruby_args=("${ruby_args[@]}" "$@")
138149# Put the ruby_args back into the position arguments $1, $2 etc
139150set -- " ${ruby_args[@]} "
140151
152+ JAVA_OPTS=" $JAVA_OPTS ${java_args[@]} $JAVA_MEM $JAVA_STACK -Xverify:none -da"
153+
141154if $cygwin ; then
142155 JAVA_HOME=` cygpath --mixed " $JAVA_HOME " `
143156 JRUBY_BASE=` cygpath --mixed " $JRUBY_BASE " `
144157 JRUBY_HOME=` cygpath --mixed " $JRUBY_HOME " `
145158 JRUBY_SHELL=` cygpath --mixed " $JRUBY_SHELL " `
146159fi
147160
148- exec " $JAVA_CMD " $JAVA_OPTS " ${java_args[@]} " -Xmx256m -Xss1024k -Xverify:none -da -classpath " $CP " \
161+ exec " $JAVA_CMD " $JAVA_OPTS -classpath " $CP " \
149162 " -Djruby.base=$JRUBY_BASE " " -Djruby.home=$JRUBY_HOME " \
150163 " -Djruby.lib=$JRUBY_BASE /lib" -Djruby.script=jruby \
151164 " -Djruby.shell=$JRUBY_SHELL " \
0 commit comments