aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/plugin.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/plugin.go')
-rw-r--r--src/runtime/plugin.go5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/runtime/plugin.go b/src/runtime/plugin.go
index 91fc275a65..7907936e14 100644
--- a/src/runtime/plugin.go
+++ b/src/runtime/plugin.go
@@ -19,7 +19,7 @@ func plugin_lastmoduleinit() (path string, syms map[string]interface{}) {
throw("runtime: plugin already initialized")
}
- for pmd := &firstmoduledata; pmd != md; pmd = pmd.next {
+ for _, pmd := range activeModules() {
if pmd.pluginpath == md.pluginpath {
println("plugin: plugin", md.pluginpath, "already loaded")
throw("plugin: plugin already loaded")
@@ -43,9 +43,8 @@ func plugin_lastmoduleinit() (path string, syms map[string]interface{}) {
}
// Initialize the freshly loaded module.
+ modulesinit()
typelinksinit()
- md.gcdatamask = progToPointerMask((*byte)(unsafe.Pointer(md.gcdata)), md.edata-md.data)
- md.gcbssmask = progToPointerMask((*byte)(unsafe.Pointer(md.gcbss)), md.ebss-md.bss)
lock(&ifaceLock)
for _, i := range md.itablinks {