@@ -95,7 +95,7 @@ static void __rebuild_library_handler_list(void)
9595 }
9696}
9797
98- bool MCEngineAddExtensionFromModule (MCStringRef p_filename, MCScriptModuleRef p_module)
98+ bool MCEngineAddExtensionFromModule (MCScriptModuleRef p_module)
9999{
100100 if (!MCScriptEnsureModuleIsUsable (p_module))
101101 {
@@ -166,20 +166,10 @@ bool MCEngineLookupResourcePathForModule(MCScriptModuleRef p_module, MCStringRef
166166 return false ;
167167}
168168
169- void MCEngineExecLoadExtension (MCExecContext& ctxt, MCStringRef p_filename , MCStringRef p_resource_path)
169+ void MCEngineLoadExtensionFromData (MCExecContext& ctxt, MCDataRef p_extension_data , MCStringRef p_resource_path)
170170{
171- ctxt . SetTheResultToEmpty ();
172-
173- MCAutoStringRef t_resolved_filename;
174- if (!MCS_resolvepath (p_filename, &t_resolved_filename))
175- return ;
176-
177- MCAutoDataRef t_data;
178- if (!MCS_loadbinaryfile (*t_resolved_filename, &t_data))
179- return ;
180-
181171 MCStreamRef t_stream;
182- /* UNCHECKED */ MCMemoryInputStreamCreate (MCDataGetBytePtr (*t_data ), MCDataGetLength (*t_data ), t_stream);
172+ /* UNCHECKED */ MCMemoryInputStreamCreate (MCDataGetBytePtr (p_extension_data ), MCDataGetLength (p_extension_data ), t_stream);
183173
184174 MCScriptModuleRef t_module;
185175 if (!MCScriptCreateModuleFromStream (t_stream, t_module))
@@ -195,15 +185,30 @@ void MCEngineExecLoadExtension(MCExecContext& ctxt, MCStringRef p_filename, MCSt
195185
196186 MCValueRelease (t_stream);
197187
198- MCEngineAddExtensionFromModule (*t_resolved_filename, t_module);
199- if (p_resource_path != nil)
200- MCEngineAddResourcePathForModule (t_module, p_resource_path);
188+ MCEngineAddExtensionFromModule (t_module);
189+ if (p_resource_path != nil)
190+ MCEngineAddResourcePathForModule (t_module, p_resource_path);
201191
202192 MCScriptReleaseModule (t_module);
203193
204194 return ;
205195}
206196
197+ void MCEngineExecLoadExtension (MCExecContext& ctxt, MCStringRef p_filename, MCStringRef p_resource_path)
198+ {
199+ ctxt . SetTheResultToEmpty ();
200+
201+ MCAutoStringRef t_resolved_filename;
202+ if (!MCS_resolvepath (p_filename, &t_resolved_filename))
203+ return ;
204+
205+ MCAutoDataRef t_data;
206+ if (!MCS_loadbinaryfile (*t_resolved_filename, &t_data))
207+ return ;
208+
209+ MCEngineLoadExtensionFromData (ctxt, *t_data, p_resource_path);
210+ }
211+
207212void MCEngineExecUnloadExtension (MCExecContext& ctxt, MCStringRef p_module_name)
208213{
209214 MCNewAutoNameRef t_name;
0 commit comments