From 64419795c4f9e2ad07c568f16b2a3deeafd0b387 Mon Sep 17 00:00:00 2001 From: Jay Krell Date: Thu, 24 May 2018 02:07:31 -0700 Subject: [PATCH] Avoid copying const string constants to the stack. --- objcgen/methodhelper.cs | 2 +- objcgen/objcgenerator.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/objcgen/methodhelper.cs b/objcgen/methodhelper.cs index 0d79f8bc..06d57780 100644 --- a/objcgen/methodhelper.cs +++ b/objcgen/methodhelper.cs @@ -74,7 +74,7 @@ public void WriteMethodLookup () implementation.Indent++; implementation.WriteLine ($"__method = mono_get_method (__{AssemblySafeName}_image, 0x{MetadataToken:X8}, {ObjCTypeName}_class);"); implementation.WriteLineUnindented ("#else"); - implementation.WriteLine ($"const char __method_name [] = \"{ManagedTypeName}:{MonoSignature}\";"); + implementation.WriteLine ($"static const char __method_name [] = \"{ManagedTypeName}:{MonoSignature}\";"); implementation.WriteLine ($"__method = mono_embeddinator_lookup_method (__method_name, {ObjCTypeName}_class);"); implementation.Indent--; implementation.WriteLineUnindented ("#endif"); diff --git a/objcgen/objcgenerator.cs b/objcgen/objcgenerator.cs index 9b183fde..bfa6073d 100644 --- a/objcgen/objcgenerator.cs +++ b/objcgen/objcgenerator.cs @@ -864,7 +864,7 @@ protected void Generate (ProcessedFieldInfo field) implementation.WriteLineUnindented ("#if TOKENLOOKUP"); implementation.WriteLine ($"__field = mono_class_get_field ({managed_type_name}_class, 0x{fi.MetadataToken:X8});"); implementation.WriteLineUnindented ("#else"); - implementation.WriteLine ($"const char __field_name [] = \"{fi.Name}\";"); + implementation.WriteLine ($"static const char __field_name [] = \"{fi.Name}\";"); implementation.WriteLine ($"__field = mono_class_get_field_from_name ({managed_type_name}_class, __field_name);"); implementation.WriteLineUnindented ("#endif"); implementation.Indent--; @@ -898,7 +898,7 @@ protected void Generate (ProcessedFieldInfo field) implementation.WriteLineUnindented ("#if TOKENLOOKUP"); implementation.WriteLine ($"__field = mono_class_get_field ({managed_type_name}_class, 0x{fi.MetadataToken:X8});"); implementation.WriteLineUnindented ("#else"); - implementation.WriteLine ($"const char __field_name [] = \"{fi.Name}\";"); + implementation.WriteLine ($"static const char __field_name [] = \"{fi.Name}\";"); implementation.WriteLine ($"__field = mono_class_get_field_from_name ({managed_type_name}_class, __field_name);"); implementation.WriteLineUnindented ("#endif"); implementation.Indent--;