Browse Source

Re-organize the class marshaling code a bit to make it easier to follow.

pull/1/head
triton 13 years ago
parent
commit
f75d16456e
  1. 12
      src/Generator/Generators/CLI/CLIMarshal.cs

12
src/Generator/Generators/CLI/CLIMarshal.cs

@ -417,13 +417,13 @@ namespace Cxxi.Generators.CLI @@ -417,13 +417,13 @@ namespace Cxxi.Generators.CLI
}
else
{
if (MarshalRefClass()) return true;
MarshalRefClass(@class);
}
return true;
}
private bool MarshalRefClass()
private void MarshalRefClass(Class @class)
{
if (!Context.Parameter.Type.IsPointer())
Return.Write("*");
@ -434,11 +434,10 @@ namespace Cxxi.Generators.CLI @@ -434,11 +434,10 @@ namespace Cxxi.Generators.CLI
&& Context.ParameterIndex == 0)
{
Return.Write("NativePtr");
return true;
return;
}
Return.Write("{0}->NativePtr", Context.Parameter.Name);
return false;
}
private void MarshalValueClass(Class @class)
@ -450,9 +449,9 @@ namespace Cxxi.Generators.CLI @@ -450,9 +449,9 @@ namespace Cxxi.Generators.CLI
argName, @class.OriginalName,
Context.Parameter.Name);
Return.Write("*{0}", argName);
return;
}
else
{
SupportAfter.PushIndent();
foreach (var field in @class.Fields)
@ -476,7 +475,6 @@ namespace Cxxi.Generators.CLI @@ -476,7 +475,6 @@ namespace Cxxi.Generators.CLI
if (Context.Parameter.Type.IsPointer())
ArgumentPrefix.Write("&");
}
}
public bool VisitFieldDecl(Field field)
{

Loading…
Cancel
Save