From 23cfa37617b2e4e02b1b88b05af750ebd3c904f9 Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 28 Aug 2016 23:12:21 +0200 Subject: [PATCH] Streamline Objective-C initialization --- ddmd/gluelayer.d | 2 +- ddmd/mars.d | 9 --------- gen/objcgen.cpp | 16 ++++++---------- gen/objcgen.h | 2 +- 4 files changed, 8 insertions(+), 21 deletions(-) diff --git a/ddmd/gluelayer.d b/ddmd/gluelayer.d index bdd8adb550..1bebcfa55a 100644 --- a/ddmd/gluelayer.d +++ b/ddmd/gluelayer.d @@ -31,7 +31,7 @@ version (IN_LLVM) extern (C++) RET retStyle(TypeFunction tf); extern (C++) Statement asmSemantic(AsmStatement s, Scope* sc); - extern(C++) void objc_initSymbols() {} + extern (C++) void objc_initSymbols(); // in gen/objcgen.cpp } else version (NoBackend) { diff --git a/ddmd/mars.d b/ddmd/mars.d index 362e6b8ffb..3c9cf086c3 100644 --- a/ddmd/mars.d +++ b/ddmd/mars.d @@ -153,8 +153,6 @@ version(IN_LLVM) extern (C++): void genCmain(Scope* sc); - // in gen/objcgen.cpp - void objc_init(); // in gen/modules.cpp void buildTargetFiles(Module m, bool singleObj, bool library); // in driver/main.cpp @@ -1169,15 +1167,8 @@ extern (C++) int mars_mainBody(ref Strings files, ref Strings libmodules, Module._init(); Target._init(); Expression._init(); - version (IN_LLVM) {} else - { objc_tryMain_init(); - } builtin_init(); - version (IN_LLVM) - { - objc_init(); - } version (IN_LLVM) {} else { diff --git a/gen/objcgen.cpp b/gen/objcgen.cpp index 355ef24ce6..eedcfbcca2 100644 --- a/gen/objcgen.cpp +++ b/gen/objcgen.cpp @@ -32,13 +32,6 @@ std::vector retainedSymbols; llvm::StringMap methVarNameMap; llvm::StringMap methVarRefMap; -void initSymbols() { - hasSymbols = false; - retainedSymbols.clear(); - methVarNameMap.clear(); - methVarRefMap.clear(); -} - void retain(LLConstant *sym) { retainedSymbols.push_back(DtoBitCast(sym, getVoidPtrType())); } @@ -122,9 +115,12 @@ bool objc_isSupported(const llvm::Triple &triple) { return false; } -void objc_init() { - initSymbols(); - ObjcSelector::_init(); +// called by ddmd.objc.objc_tryMain_init() +void objc_initSymbols() { + hasSymbols = false; + retainedSymbols.clear(); + methVarNameMap.clear(); + methVarRefMap.clear(); } LLGlobalVariable *objc_getMethVarRef(const ObjcSelector &sel) { diff --git a/gen/objcgen.h b/gen/objcgen.h index 073644f51c..a1795e8e41 100644 --- a/gen/objcgen.h +++ b/gen/objcgen.h @@ -21,7 +21,7 @@ class Triple; } bool objc_isSupported(const llvm::Triple &triple); -void objc_init(); +void objc_initSymbols(); void objc_Module_genmoduleinfo_classes(); llvm::GlobalVariable *objc_getMethVarRef(const ObjcSelector &sel);