projects
/
mono.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
8b58ce4
)
[interp] fix stack overflow on tail recursion
author
Bernhard Urban
<bernhard.urban@xamarin.com>
Tue, 4 Apr 2017 09:16:27 +0000
(11:16 +0200)
committer
Bernhard Urban
<bernhard.urban@xamarin.com>
Wed, 5 Apr 2017 18:41:05 +0000
(20:41 +0200)
mono/mini/interp/transform.c
patch
|
blob
|
history
diff --git
a/mono/mini/interp/transform.c
b/mono/mini/interp/transform.c
index 8c2ac6f0a50b28a98bd9def44274a731f8eae1ad..e23969c79d15ee4c92d496d666289f52f8760836 100644
(file)
--- a/
mono/mini/interp/transform.c
+++ b/
mono/mini/interp/transform.c
@@
-811,8
+811,9
@@
interp_transform_call (TransformData *td, MonoMethod *method, MonoMethod *target
int offset;
if (mono_interp_traceopt)
g_print ("Optimize tail call of %s.%s\n", target_method->klass->name, target_method->name);
- for (i = csignature->param_count - 1; i >= 0; --i)
- store_arg (td, i + csignature->hasthis);
+
+ for (i = csignature->param_count - 1 + !!csignature->hasthis; i >= 0; --i)
+ store_arg (td, i);
ADD_CODE(td, MINT_BR_S);
offset = body_start_offset - ((td->new_ip - 1) - td->new_code);