Browse Source

Generate valid C# for constants in namespaceless modules

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1635/head
Dimitar Dobrev 4 years ago
parent
commit
42f38ec99e
  1. 10
      src/Generator/Generators/CSharp/CSharpSources.cs

10
src/Generator/Generators/CSharp/CSharpSources.cs

@ -967,7 +967,7 @@ namespace CppSharp.Generators.CSharp
var libraryPath = GetLibraryOf(var); var libraryPath = GetLibraryOf(var);
if (!LibrarySymbols.TryGetValue(libraryPath, out var lib)) if (!LibrarySymbols.TryGetValue(libraryPath, out var lib))
LibrarySymbols[libraryPath] = lib = new LibrarySymbolInfo(libraryPath, Module.OutputNamespace + ".__Symbols"); LibrarySymbols[libraryPath] = lib = new LibrarySymbolInfo(libraryPath, Module.OutputNamespace);
var location = lib.GetFullVariablePath(var.Mangled); var location = lib.GetFullVariablePath(var.Mangled);
@ -976,9 +976,9 @@ namespace CppSharp.Generators.CSharp
if (arrayType != null) if (arrayType != null)
{ {
if (arrayType.Type.IsPrimitiveType(PrimitiveType.Char) && arrayType.SizeType != ArrayType.ArraySize.Constant) if (arrayType.Type.IsPrimitiveType(PrimitiveType.Char) && arrayType.SizeType != ArrayType.ArraySize.Constant)
WriteLine($@"var {ptr} = {location};"); WriteLine($"var {ptr} = {location};");
else else
WriteLine($@"var {ptr} = ({arrayType.Type.Visit(TypePrinter)}*){location};"); WriteLine($"var {ptr} = ({arrayType.Type.Visit(TypePrinter)}*){location};");
} }
else else
{ {
@ -3567,9 +3567,9 @@ internal static{(@new ? " new" : string.Empty)} {printedClass} __GetInstance({Ty
public LibrarySymbolInfo(string path, string @namespace) public LibrarySymbolInfo(string path, string @namespace)
{ {
this.path = path; this.path = path;
this.@namespace = @namespace;
@class = identifierCleanerRegex.Replace(path, "_"); @class = identifierCleanerRegex.Replace(path, "_");
this.@namespace = (!string.IsNullOrEmpty(@namespace) ? @namespace : @class) + ".__Symbols";
} }
public string Generate() public string Generate()

Loading…
Cancel
Save