public LoadedModule(ModuleImage image) { Code = image.Code.ToArray(); EntryMethodIndex = image.EntryMethodIndex; MethodRefs = image.MethodRefs.ToArray(); VariableRefs = image.VariableRefs.ToArray(); Methods = image.Methods.ToArray(); Constants = new IValue[image.Constants.Count]; Variables = new VariablesFrame(image.Variables); ExportedProperies = image.ExportedProperties.ToArray(); ExportedMethods = image.ExportedMethods.ToArray(); ModuleInfo = image.ModuleInfo; LoadAddress = image.LoadAddress; for (int i = 0; i < image.Constants.Count; i++) { var def = image.Constants[i]; Constants[i] = ValueFactory.Parse(def.Presentation, def.Type); } // Resolve annotation constants for (int i = 0; i < Methods.Length; i++) { EvaluateAnnotationParametersValues(Methods[i].Signature.Annotations); for (int j = 0; j < Methods[i].Signature.ArgCount; j++) { EvaluateAnnotationParametersValues(Methods[i].Signature.Params[j].Annotations); } } }
void ReleaseDesignerOutlets() { if (hintTable != null) { hintTable.Dispose(); hintTable = null; } if (labelOne != null) { labelOne.Dispose(); labelOne = null; } if (ModuleImage != null) { ModuleImage.Dispose(); ModuleImage = null; } if (ModulePageNav != null) { ModulePageNav.Dispose(); ModulePageNav = null; } }
public void TestThatModuleInfoIsSerialized() { var mi = new ModuleImage { ModuleInfo = new ModuleInformation { Origin = "AAA", ModuleName = "BBB", CodeIndexer = new SourceCodeIterator() } }; var formatter = new BinaryFormatter(); using (var ms = new MemoryStream()) { formatter.Serialize(ms, mi); ms.Position = 0; var obj = (ModuleImage)formatter.Deserialize(ms); Assert.That(obj.ModuleInfo.Origin, Is.EqualTo("AAA")); Assert.That(obj.ModuleInfo.ModuleName, Is.EqualTo("BBB")); Assert.That(obj.ModuleInfo.CodeIndexer, Is.Null); } }
public Process CreateProcess(IHostApplication host, ModuleImage moduleImage, ICodeSource src) { SetGlobalEnvironment(host, src); var module = _engine.LoadModuleImage(moduleImage); return(InitProcess(host, module)); }
protected internal virtual void Close() { if (_image != null) { _image.Close(); _image = null; } }
public ModuleImage Compile(Parser parser, ICompilerContext context) { _module = new ModuleImage(); _ctx = context; _parser = parser; _parser.Start(); BuildModule(); CheckForwardedDeclarations(); return _module; }
internal LoadedModule(ModuleImage image) { this.Code = image.Code.ToArray(); this.EntryMethodIndex = image.EntryMethodIndex; this.MethodRefs = image.MethodRefs.ToArray(); this.VariableRefs = image.VariableRefs.ToArray(); this.Methods = image.Methods.ToArray(); this.Constants = new IValue[image.Constants.Count]; this.Variables = new VariablesFrame(image.Variables); this.ExportedProperies = image.ExportedProperties.ToArray(); this.ExportedMethods = image.ExportedMethods.ToArray(); this.ModuleInfo = image.ModuleInfo; for (int i = 0; i < image.Constants.Count; i++) { var def = image.Constants[i]; this.Constants[i] = ValueFactory.Parse(def.Presentation, def.Type); } }
protected void LoadSignature(IBinaryAccessor accessor, ModuleImage image) { byte sigType = accessor.ReadByte(); if ((sigType & Metadata.SignatureType.Property) != Metadata.SignatureType.Property) { throw new CodeModelException(string.Format(SR.AssemblyLoadError, _module.Location)); } _hasThis = ((sigType & Metadata.SignatureType.HasThis) == Metadata.SignatureType.HasThis); int paramCount = accessor.ReadCompressedInteger(); _returnType = TypeSignature.Load(accessor, _module); _parameters = new PropertyParameterCollection(this); _parameters.Load(accessor, paramCount); }
internal LoadedModule(ModuleImage image) { this.Code = image.Code.ToArray(); this.EntryMethodIndex = image.EntryMethodIndex; this.MethodRefs = image.MethodRefs.ToArray(); this.VariableRefs = image.VariableRefs.ToArray(); this.Methods = image.Methods.ToArray(); this.Constants = new IValue[image.Constants.Count]; this.VariableFrameSize = image.VariableFrameSize; this.ExportedProperies = image.ExportedProperties.ToArray(); this.ExportedMethods = image.ExportedMethods.ToArray(); this.ModuleInfo = image.ModuleInfo; for (int i = 0; i < image.Constants.Count; i++) { var def = image.Constants[i]; this.Constants[i] = ValueFactory.Parse(def.Presentation, def.Type); } }
public void rr(string source) { ICodeSource sourceToCompile = Engine.Loader.FromFile(source); ModuleImage module = Engine.GetCompilerService().Compile(sourceToCompile); UserAddedScript script = new UserAddedScript { Type = UserAddedScriptType.Class, Image = module, Symbol = source }; Engine.LoadUserScript(script); //var builder = new ClassBuilder<UserScriptContextInstance>(); //var reflected = builder.SetModule(module) // .SetTypeName("Dummy") // .ExportDefaults() // .Build(); }
public async Task <bool> UploadSampleImage(ModuleSampleImageList model) { //_contex.ModuleImages var dataModel = new ModuleImage(); dataModel.ModulId = model.ModuleId; dataModel.SampleImage = model.SampleImage; dataModel.Description = model.ImageDesc; dataModel.CreateDate = DateTime.UtcNow; dataModel.UpdateDate = DateTime.UtcNow; _contex.ModuleImages.Add(dataModel); return(await _contex.SaveChangesAsync() > 0 ? true : false); //return await Task.Run(() => //{ //}); }
public LoadedModule(ModuleImage image) { Code = image.Code.ToArray(); EntryMethodIndex = image.EntryMethodIndex; MethodRefs = image.MethodRefs.ToArray(); VariableRefs = image.VariableRefs.ToArray(); Methods = image.Methods.ToArray(); Constants = new IValue[image.Constants.Count]; Variables = new VariablesFrame(image.Variables); ExportedProperies = image.ExportedProperties.ToArray(); ExportedMethods = image.ExportedMethods.ToArray(); ModuleInfo = image.ModuleInfo; LoadAddress = image.LoadAddress; for (int i = 0; i < image.Constants.Count; i++) { var def = image.Constants[i]; Constants[i] = ValueFactory.Parse(def.Presentation, def.Type); } ResolveAnnotationConstants(); }
public void LoadAndRegister(string typeName, ModuleImage moduleImage) { if (_loadedModules.ContainsKey(typeName)) { var alreadyLoadedSrc = _loadedModules[typeName].ModuleInfo.Origin; var currentSrc = moduleImage.ModuleInfo.Origin; if (alreadyLoadedSrc != currentSrc) { throw new RuntimeException("Type «" + typeName + "» already registered"); } return; } var loadedModule = new LoadedModule(moduleImage); _loadedModules.Add(typeName, loadedModule); TypeManager.RegisterType(typeName, typeof(AttachedScriptsFactory)); }
private void WriteImage(TextWriter output, ModuleImage module) { output.WriteLine(".variableFrame:"); module.Variables.ForEach(x => output.WriteLine(" " + x)); output.WriteLine(".constants"); for (int i = 0; i < module.Constants.Count; i++) { var item = module.Constants[i]; output.WriteLine( String.Format("{0,-3}:type: {1}, val: {2}", i, Enum.GetName(typeof(DataType), item.Type), item.Presentation)); } output.WriteLine(".code"); for (int i = 0; i < module.Code.Count; i++) { var item = module.Code[i]; output.WriteLine( String.Format("{0,-3}:({1,-10}{2,3})", i, Enum.GetName(typeof(OperationCode), item.Code), item.Argument)); } output.WriteLine(".procedures"); foreach (var item in module.Methods) { WriteMethodDefinition(output, item); } output.WriteLine(".varmap"); WriteSymbolMap(output, module.VariableRefs); output.WriteLine(".procmap"); WriteSymbolMap(output, module.MethodRefs); output.WriteLine(".moduleEntry"); output.WriteLine(module.EntryMethodIndex.ToString()); output.WriteLine(".exports"); WriteExports(output, module.ExportedProperties); WriteExports(output, module.ExportedMethods); }
private void WriteImage(TextWriter output, ModuleImage module) { output.WriteLine(".variableFrame:" + module.VariableFrameSize.ToString()); output.WriteLine(".constants"); for (int i = 0; i < module.Constants.Count; i++) { var item = module.Constants[i]; output.WriteLine( String.Format("{0,-3}:type: {1}, val: {2}", i, Enum.GetName(typeof(DataType), item.Type), item.Presentation)); } output.WriteLine(".code"); for (int i = 0; i < module.Code.Count; i++) { var item = module.Code[i]; output.WriteLine( String.Format("{0,-3}:({1,-10}{2,3})", i, Enum.GetName(typeof(OperationCode), item.Code), item.Argument)); } output.WriteLine(".procedures"); foreach (var item in module.Methods) { WriteMethodDefinition(output, item); } output.WriteLine(".varmap"); WriteSymbolMap(output, module.VariableRefs); output.WriteLine(".procmap"); WriteSymbolMap(output, module.MethodRefs); output.WriteLine(".moduleEntry"); output.WriteLine(module.EntryMethodIndex.ToString()); output.WriteLine(".exports"); WriteExports(output, module.ExportedProperties); WriteExports(output, module.ExportedMethods); }
private void LoadImage() { PEImage pe = null; try { pe = PEImage.LoadFile(_location, _assemblyManager.FileLoadMode); CorHeader corHeader; var metadata = MemoryMappedMetadata.Load(pe, out corHeader); _image = new ModuleImage(this, pe, metadata, corHeader); } catch (Exception) { if (pe != null) { pe.Dispose(); pe = null; } throw; } }
protected void LoadSignature(IBinaryAccessor accessor, ModuleImage image) { _sigType = accessor.ReadByte(); if ((_sigType & Metadata.SignatureType.Generic) == Metadata.SignatureType.Generic) { accessor.ReadCompressedInteger(); // GenericParameterCount (unused) } int paramCount = accessor.ReadCompressedInteger(); int[] rids; image.GetParamsByMethod(_rid, out rids); int ridIndex = 0; _returnType = new MethodReturnType(this); _returnType.Load(accessor, rids, ref ridIndex); if (paramCount > 0) { _parameters = new MethodParameterCollection(this); _parameters.Load(accessor, paramCount, rids, ridIndex); } }