summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorLauro Moura <lauromoura@expertisesolutions.com.br>2019-11-15 00:07:11 -0300
committerLauro Moura <lauromoura@expertisesolutions.com.br>2019-11-15 00:07:11 -0300
commita0dd0b616a9b02336de442d522742188786bd98d (patch)
treee99da8d8715dddd730a13bfdadb2650c3947e54b /src/bin
parentfe8496cb6e24f43bde943190092aad89626771db (diff)
downloadefl-a0dd0b616a9b02336de442d522742188786bd98d.tar.gz
csharp: Suppress CA2000 in native wrappers.
Summary: These methods may instantiate `IDisposable` classes like `Array`, `Iterator` to pass to user-overriden C# methods. As we can't guarantee the user stored the object or not, we can't call Dispose directly on them. Ref T8423 Depends on D10670 Reviewers: brunobelo, felipealmeida, YOhoho Reviewed By: brunobelo Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8423 Differential Revision: https://phab.enlightenment.org/D10671
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/eolian_mono/eolian/mono/function_definition.hh3
-rw-r--r--src/bin/eolian_mono/eolian_mono.cc3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh b/src/bin/eolian_mono/eolian/mono/function_definition.hh
index 51bb17c3a1..cded973d23 100644
--- a/src/bin/eolian_mono/eolian/mono/function_definition.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh
@@ -123,7 +123,8 @@ struct native_function_definition_generator
self = "";
if(!as_generator
- (indent << "private static "
+ (indent << "[SuppressMessage(\"Microsoft.Reliability\", \"CA2000:DisposeObjectsBeforeLosingScope\", Justification = \"The instantiated objects can be stored in the called Managed API method.\")]\n"
+ << indent << "private static "
<< eolian_mono::marshall_type(true) << " "
<< string
<< "(System.IntPtr obj, System.IntPtr pd"
diff --git a/src/bin/eolian_mono/eolian_mono.cc b/src/bin/eolian_mono/eolian_mono.cc
index fd40e9982d..62eed11b2a 100644
--- a/src/bin/eolian_mono/eolian_mono.cc
+++ b/src/bin/eolian_mono/eolian_mono.cc
@@ -171,7 +171,8 @@ run(options_type const& opts)
"using System.Collections.Generic;\n"
"using System.Linq;\n"
"using System.Threading;\n"
- "using System.ComponentModel;\n")
+ "using System.ComponentModel;\n"
+ "using System.Diagnostics.CodeAnalysis;\n")
.generate(iterator, efl::eolian::grammar::attributes::unused, efl::eolian::grammar::context_null()))
{
throw std::runtime_error("Failed to generate file preamble");