public RelCommand(uint fileId, ModuleDataNode section, RELLink link)
 {
     _moduleID          = fileId;
     _section           = section;
     _modifiedSectionId = section.Index;
     _targetSectionId   = link._section;
     _command           = (RELCommandType)(int)link._type;
     _addend            = link._value;
 }
예제 #2
0
 public RelocationManager(ModuleDataNode data)
 {
     _data = data;
     if (DataNode == null || DataNode._manager == null)
     {
         //Initialize
         _linkedCommands    = new SortedList <int, List <RelocationTarget> >();
         _linkedBranches    = new Dictionary <int, List <RelocationTarget> >();
         _targetRelocations = new Dictionary <int, RelocationTarget>();
         _tags     = new Dictionary <int, List <string> >();
         _commands = new Dictionary <int, RelCommand>();
         _colors   = new Dictionary <int, SolidBrush>();
     }
     else
     {
         //Make a copy
         _linkedCommands    = DataNode._manager._linkedCommands;
         _linkedBranches    = DataNode._manager._linkedBranches;
         _targetRelocations = DataNode._manager._targetRelocations;
         _tags     = DataNode._manager._tags;
         _commands = DataNode._manager._commands;
         _colors   = DataNode._manager._colors;
     }
 }
예제 #3
0
 public void UseReference(ModuleDataNode reference, int offset)
 {
     _referenceIndex = (_reference = reference) != null?offset.RoundDown(4) / 4 : 0;
 }
예제 #4
0
 public Relocation(ModuleDataNode d, int i)
 {
     _section = d;
     _index = i;
 }
예제 #5
0
 public Relocation(ModuleDataNode d, int i)
 {
     _section = d;
     _index   = i;
 }