Browse Source

Fixed the floating point bug.

pull/395/head
Pyry Kontio 12 years ago committed by Joao Matos
parent
commit
0598aa1329
  1. 11
      src/Generator/Passes/HandleDefaultParamValuesPass.cs

11
src/Generator/Passes/HandleDefaultParamValuesPass.cs

@ -28,6 +28,8 @@ namespace CppSharp.Passes @@ -28,6 +28,8 @@ namespace CppSharp.Passes
if (CheckForDefaultPointer(desugared, parameter))
continue;
CheckFloatSyntax(desugared, parameter);
bool? defaultConstruct = CheckForDefaultConstruct(desugared, parameter.DefaultArgument);
if (defaultConstruct == null ||
(!Driver.Options.MarshalCharAsManagedChar &&
@ -53,6 +55,15 @@ namespace CppSharp.Passes @@ -53,6 +55,15 @@ namespace CppSharp.Passes
return result;
}
private void CheckFloatSyntax(Type desugared, Parameter parameter)
{
var builtin = desugared as BuiltinType;
if (builtin != null && builtin.Type == AST.PrimitiveType.Float && parameter.DefaultArgument.String.EndsWith(".F"))
{
parameter.DefaultArgument.String = parameter.DefaultArgument.String.Replace(".F", ".0F");
}
}
private bool CheckForAnonExpression(Type desugared, Parameter parameter)
{
var cast = parameter.DefaultArgument as CastExpr;

Loading…
Cancel
Save