aboutsummaryrefslogtreecommitdiff
path: root/lib/Plugins.Runtime/src/LivePlugin.cs
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2023-04-15 01:58:55 -0400
committerLibravatar vnugent <public@vaughnnugent.com>2023-04-15 01:58:55 -0400
commit3ce61cf38727db2f37a0e478182d2a73222c8a7c (patch)
treea03bf1bdde44961183b7bb34dea9c3381050dc27 /lib/Plugins.Runtime/src/LivePlugin.cs
parentbaf859f45cf1f00e79508954517ed4b6fb446103 (diff)
Managed assembly loading overhaul
Diffstat (limited to 'lib/Plugins.Runtime/src/LivePlugin.cs')
-rw-r--r--lib/Plugins.Runtime/src/LivePlugin.cs23
1 files changed, 14 insertions, 9 deletions
diff --git a/lib/Plugins.Runtime/src/LivePlugin.cs b/lib/Plugins.Runtime/src/LivePlugin.cs
index ae4c90b..67cacb4 100644
--- a/lib/Plugins.Runtime/src/LivePlugin.cs
+++ b/lib/Plugins.Runtime/src/LivePlugin.cs
@@ -27,6 +27,7 @@ using System.Linq;
using System.Reflection;
using System.Text.Json;
+using VNLib.Utils.IO;
using VNLib.Utils.Extensions;
using VNLib.Plugins.Attributes;
@@ -109,18 +110,22 @@ namespace VNLib.Plugins.Runtime
{
return;
}
+
//Merge configurations before passing to plugin
- JsonDocument merged = hostConfig.Merge(pluginConf, "host", PluginType.Name);
- try
- {
- //Invoke
- configInit.Invoke(merged);
- }
- catch
+ using JsonDocument merged = hostConfig.Merge(pluginConf, "host", PluginType.Name);
+
+ //Write the config to binary to pass it to the plugin
+ using VnMemoryStream vms = new();
+ using (Utf8JsonWriter writer = new(vms))
{
- merged.Dispose();
- throw;
+ merged.WriteTo(writer);
}
+
+ //Reset memstream
+ vms.Seek(0, System.IO.SeekOrigin.Begin);
+
+ //Invoke
+ configInit.Invoke(vms.AsSpan());
}
/// <summary>