Skip to content

Commit

Permalink
Streamline Objective-C initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
kinke committed Aug 28, 2016
1 parent 8a392dc commit 23cfa37
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 21 deletions.
2 changes: 1 addition & 1 deletion ddmd/gluelayer.d
Expand Up @@ -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)
{
Expand Down
9 changes: 0 additions & 9 deletions ddmd/mars.d
Expand Up @@ -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
Expand Down Expand Up @@ -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
{
Expand Down
16 changes: 6 additions & 10 deletions gen/objcgen.cpp
Expand Up @@ -32,13 +32,6 @@ std::vector<LLConstant *> retainedSymbols;
llvm::StringMap<LLGlobalVariable *> methVarNameMap;
llvm::StringMap<LLGlobalVariable *> methVarRefMap;

void initSymbols() {
hasSymbols = false;
retainedSymbols.clear();
methVarNameMap.clear();
methVarRefMap.clear();
}

void retain(LLConstant *sym) {
retainedSymbols.push_back(DtoBitCast(sym, getVoidPtrType()));
}
Expand Down Expand Up @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion gen/objcgen.h
Expand Up @@ -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);

Expand Down

0 comments on commit 23cfa37

Please sign in to comment.