Merge "Reset contexts before calling LoadHook"
diff --git a/module_ctx.go b/module_ctx.go
index 02ef9c4..95061f0 100644
--- a/module_ctx.go
+++ b/module_ctx.go
@@ -1368,16 +1368,16 @@
 
 	if v, exists := pendingHooks.Load(module.logicModule); exists {
 		hooks := v.(*[]LoadHook)
-		mctx := &loadHookContext{
-			baseModuleContext: baseModuleContext{
-				context: ctx,
-				config:  config,
-				module:  module,
-			},
-			scopedModuleFactories: scopedModuleFactories,
-		}
 
 		for _, hook := range *hooks {
+			mctx := &loadHookContext{
+				baseModuleContext: baseModuleContext{
+					context: ctx,
+					config:  config,
+					module:  module,
+				},
+				scopedModuleFactories: scopedModuleFactories,
+			}
 			hook(mctx)
 			newModules = append(newModules, mctx.newModules...)
 			deps = append(deps, mctx.ninjaFileDeps...)