Browse Source

Extract the function parameter marshal logic into its own method.

pull/1/head
triton 13 years ago
parent
commit
901c0a6832
  1. 17
      src/Generator/Generators/CLI/CLISourcesTemplate.cs

17
src/Generator/Generators/CLI/CLISourcesTemplate.cs

@ -348,13 +348,20 @@ namespace Cxxi.Generators.CLI
for (var i = 0; i < function.Parameters.Count; ++i) for (var i = 0; i < function.Parameters.Count; ++i)
{ {
var param = function.Parameters[i]; var param = function.Parameters[i];
GenerateFunctionParamMarshal(function, param, @params, i);
}
return @params;
}
private void GenerateFunctionParamMarshal(Function function, Parameter param, List<ParamMarshal> @params, int i)
{
if (param.Type is BuiltinType) if (param.Type is BuiltinType)
{ {
@params.Add(new ParamMarshal {Name = param.Name, Param = param}); @params.Add(new ParamMarshal {Name = param.Name, Param = param});
return;
} }
else
{
var argName = "arg" + i.ToString(CultureInfo.InvariantCulture); var argName = "arg" + i.ToString(CultureInfo.InvariantCulture);
var ctx = new MarshalContext() var ctx = new MarshalContext()
@ -382,11 +389,7 @@ namespace Cxxi.Generators.CLI
WriteLine(marshal.SupportAfter); WriteLine(marshal.SupportAfter);
var argText = marshal.ArgumentPrefix + argName; var argText = marshal.ArgumentPrefix + argName;
@params.Add(new ParamMarshal { Name = argText, Param = param }); @params.Add(new ParamMarshal {Name = argText, Param = param});
}
}
return @params;
} }
public void GenerateFunctionParams(Function function, List<ParamMarshal> @params) public void GenerateFunctionParams(Function function, List<ParamMarshal> @params)

Loading…
Cancel
Save