/[RomCheater]/trunk/RomCheater/Docking/FloatingMemorySearcher.cs
ViewVC logotype

Diff of /trunk/RomCheater/Docking/FloatingMemorySearcher.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 456 by william, Mon Jun 3 01:45:40 2013 UTC revision 457 by william, Mon Jun 3 02:10:27 2013 UTC
# Line 58  namespace RomCheater.Docking Line 58  namespace RomCheater.Docking
58  #endif  #endif
59    
60          const bool USE_OLD_SEARCH_RESULTS_COMPRATOR_CODE = false;          const bool USE_OLD_SEARCH_RESULTS_COMPRATOR_CODE = false;
61            const bool USE_NONRANGE_SEARCH_RESULT_READER = false;
62          private bool DefaultUnsignedState = true; // set unsigned to true          private bool DefaultUnsignedState = true; // set unsigned to true
63          public FloatingMemorySearcher() { InitializeComponent(); this.AcceptedPlugin = null; OnBrowseMemoryRegion = null; this.AcceptedProcess = null; SearchInProgess = false; Reload(); }          public FloatingMemorySearcher() { InitializeComponent(); this.AcceptedPlugin = null; OnBrowseMemoryRegion = null; this.AcceptedProcess = null; SearchInProgess = false; Reload(); }
64          public FloatingMemorySearcher(IConfigPlugin config) : this() { this.AcceptedPlugin = config; }          public FloatingMemorySearcher(IConfigPlugin config) : this() { this.AcceptedPlugin = config; }
# Line 1432  namespace RomCheater.Docking Line 1432  namespace RomCheater.Docking
1432                      provider.OnBytesRead += new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead);                      provider.OnBytesRead += new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead);
1433                      provider.ReadProcessMemoryAtOnce(MemoryRangeStart, (MemoryRangeSize - MemoryRangeStart), writer);                      provider.ReadProcessMemoryAtOnce(MemoryRangeStart, (MemoryRangeSize - MemoryRangeStart), writer);
1434                      provider.CloseProvider();                      provider.CloseProvider();
1435                      if (SearchWorkerThread.CancellationPending) { provider_st.Stop(); st.Stop(); writer.CancelRequest(); writer.Dispose(); e.Result = true; return; }                      if (SearchWorkerThread.CancellationPending)
1436                        {
1437                            provider_st.Stop();
1438                            st.Stop();
1439                            writer.CancelRequest();
1440                            writer.Dispose();
1441                            writer = null;
1442                            e.Result = true;
1443                            return;
1444                        }
1445                      writer.Dispose();                      writer.Dispose();
1446                        writer = null;
1447                  }                  }
1448                  provider_st.Stop();                  provider_st.Stop();
1449                  logger.Profiler.WriteLine("It took a total of {0} seconds for the memory provider to complete it's operation(s).", provider_st.Elapsed.TotalSeconds);                  logger.Profiler.WriteLine("It took a total of {0} seconds for the memory provider to complete it's operation(s).", provider_st.Elapsed.TotalSeconds);
# Line 1460  namespace RomCheater.Docking Line 1470  namespace RomCheater.Docking
1470                      if (SearchArgs.CompareType != SearchCompareTypes.Between && SearchArgs.CompareType != SearchCompareTypes.NotBetween)                      if (SearchArgs.CompareType != SearchCompareTypes.Between && SearchArgs.CompareType != SearchCompareTypes.NotBetween)
1471                      {                      {
1472                          #region Non-Range Searches                          #region Non-Range Searches
1473                          st_nonrange_search.Start();                          if (USE_NONRANGE_SEARCH_RESULT_READER)
                         //second_tmp_Results = new List<ResultType<object>>(SearchArgs.Results.Count * 1024);  
                         ////second_tmp_Results.c  
                         try  
1474                          {                          {
1475                              using (SearchResultReader reader = new SearchResultReader(SearchGuid))                              st_nonrange_search.Start();
1476                                //second_tmp_Results = new List<ResultType<object>>(SearchArgs.Results.Count * 1024);
1477                                ////second_tmp_Results.c
1478                                try
1479                              {                              {
1480                                  try                                  using (SearchResultReader reader = new SearchResultReader(SearchGuid))
1481                                  {                                  {
1482                                        try
1483                                        {
1484    
1485                                      #region new comparator-support                                          #region new comparator-support
1486                                      second_tmp_Results = reader.GetResults(SearchArgs, (IAcceptsProcessAndConfig)this, resultsprogress);                                          second_tmp_Results = new List<ResultType<object>>(reader.GetResults(SearchArgs, (IAcceptsProcessAndConfig)this, resultsprogress));
1487                                      #endregion                                          #endregion
1488    
1489                                      #region USE_OLD_SEARCH_RESULTS_COMPRATOR_CODE                                          #region USE_OLD_SEARCH_RESULTS_COMPRATOR_CODE
1490                                      if (USE_OLD_SEARCH_RESULTS_COMPRATOR_CODE)                                          if (USE_OLD_SEARCH_RESULTS_COMPRATOR_CODE)
                                     {  
                                         for (int i = 0; i < reader.ResultCount; i += 1)  
1491                                          {                                          {
1492                                              object result_value = 0;                                              for (int i = 0; i < reader.ResultCount; i += 1)
                                             uint address = 0;  
                                             #region switch (SearchArgs.DataType)  
                                             switch (SearchArgs.DataType)  
1493                                              {                                              {
1494                                                  case SearchDataTypes._8bits: if (unsigned)                                                  object result_value = 0;
1495                                                      {                                                  uint address = 0;
1496                                                          using (ResultType<byte> result = reader.GetNextResult<byte>())                                                  #region switch (SearchArgs.DataType)
1497                                                    switch (SearchArgs.DataType)
1498                                                    {
1499                                                        case SearchDataTypes._8bits: if (unsigned)
1500                                                          {                                                          {
1501                                                              address = result.Address;                                                              using (ResultType<byte> result = reader.GetNextResult<byte>())
1502                                                              result_value = result.Value;                                                              {
1503                                                                    address = result.Address;
1504                                                                    result_value = result.Value;
1505                                                                }
1506                                                          }                                                          }
1507                                                      }                                                          else
                                                     else  
                                                     {  
                                                         using (ResultType<sbyte> result = reader.GetNextResult<sbyte>())  
1508                                                          {                                                          {
1509                                                              address = result.Address;                                                              using (ResultType<sbyte> result = reader.GetNextResult<sbyte>())
1510                                                              result_value = result.Value;                                                              {
1511                                                          }                                                                  address = result.Address;
1512                                                      } break;                                                                  result_value = result.Value;
1513                                                  case SearchDataTypes._16bits: if (unsigned)                                                              }
1514                                                      {                                                          } break;
1515                                                          using (ResultType<ushort> result = reader.GetNextResult<ushort>())                                                      case SearchDataTypes._16bits: if (unsigned)
1516                                                          {                                                          {
1517                                                              address = result.Address;                                                              using (ResultType<ushort> result = reader.GetNextResult<ushort>())
1518                                                              result_value = result.Value;                                                              {
1519                                                                    address = result.Address;
1520                                                                    result_value = result.Value;
1521                                                                }
1522                                                          }                                                          }
1523                                                      }                                                          else
                                                     else  
                                                     {  
                                                         using (ResultType<short> result = reader.GetNextResult<short>())  
1524                                                          {                                                          {
1525                                                              address = result.Address;                                                              using (ResultType<short> result = reader.GetNextResult<short>())
1526                                                              result_value = result.Value;                                                              {
1527                                                          }                                                                  address = result.Address;
1528                                                      } break;                                                                  result_value = result.Value;
1529                                                  case SearchDataTypes._32bits: if (unsigned)                                                              }
1530                                                      {                                                          } break;
1531                                                          using (ResultType<uint> result = reader.GetNextResult<uint>())                                                      case SearchDataTypes._32bits: if (unsigned)
1532                                                          {                                                          {
1533                                                              address = result.Address;                                                              using (ResultType<uint> result = reader.GetNextResult<uint>())
1534                                                              result_value = result.Value;                                                              {
1535                                                                    address = result.Address;
1536                                                                    result_value = result.Value;
1537                                                                }
1538                                                          }                                                          }
1539                                                      }                                                          else
                                                     else  
                                                     {  
                                                         using (ResultType<int> result = reader.GetNextResult<int>())  
1540                                                          {                                                          {
1541                                                              address = result.Address;                                                              using (ResultType<int> result = reader.GetNextResult<int>())
1542                                                              result_value = result.Value;                                                              {
1543                                                          }                                                                  address = result.Address;
1544                                                      } break;                                                                  result_value = result.Value;
1545                                                  case SearchDataTypes._64bits: if (unsigned)                                                              }
1546                                                      {                                                          } break;
1547                                                          using (ResultType<ulong> result = reader.GetNextResult<ulong>())                                                      case SearchDataTypes._64bits: if (unsigned)
1548                                                          {                                                          {
1549                                                              address = result.Address;                                                              using (ResultType<ulong> result = reader.GetNextResult<ulong>())
1550                                                              result_value = result.Value;                                                              {
1551                                                                    address = result.Address;
1552                                                                    result_value = result.Value;
1553                                                                }
1554                                                          }                                                          }
1555                                                      }                                                          else
                                                     else  
                                                     {  
                                                         using (ResultType<long> result = reader.GetNextResult<long>())  
1556                                                          {                                                          {
1557                                                              address = result.Address;                                                              using (ResultType<long> result = reader.GetNextResult<long>())
1558                                                              result_value = result.Value;                                                              {
1559                                                          }                                                                  address = result.Address;
1560                                                      } break;                                                                  result_value = result.Value;
1561                                              }                                                              }
1562                                              #endregion                                                          } break;
1563                                              if (MemoryRangeStart > 0 && !SearchArgs.IsFirstSearch) { address = address - MemoryRangeStart; }                                                  }
1564                                              try                                                  #endregion
1565                                              {                                                  if (MemoryRangeStart > 0 && !SearchArgs.IsFirstSearch) { address = address - MemoryRangeStart; }
1566                                                  //r_ms.BaseStream.Seek(address, SeekOrigin.Begin);                                                  try
1567                                              }                                                  {
1568                                              catch (Exception)                                                      //r_ms.BaseStream.Seek(address, SeekOrigin.Begin);
1569                                              {                                                  }
1570                                                  throw;                                                  catch (Exception)
1571                                              }                                                  {
1572                                              switch (SearchArgs.DataType)                                                      throw;
1573                                              {                                                  }
1574                                                  #region Comparer Support                                                  switch (SearchArgs.DataType)
1575                                                  #region case SearchDataTypes._8bits:                                                  {
1576                                                  case SearchDataTypes._8bits:                                                      #region Comparer Support
1577                                                      if (SearchArgs.IsUnsignedDataType)                                                      #region case SearchDataTypes._8bits:
1578                                                      {                                                      case SearchDataTypes._8bits:
1579                                                          byte lookup_value = 0;                                                          if (SearchArgs.IsUnsignedDataType)
                                                         //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }  
                                                         lookup_value = Convert.ToByte(result_value);  
                                                         using (_8bit_unsigned_comparer_ comparer = new _8bit_unsigned_comparer_(SearchArgs, address))  
1580                                                          {                                                          {
1581                                                              byte value = 0;                                                              byte lookup_value = 0;
1582                                                              if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)                                                              //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }
1583                                                                lookup_value = Convert.ToByte(result_value);
1584                                                                using (_8bit_unsigned_comparer_ comparer = new _8bit_unsigned_comparer_(SearchArgs, address))
1585                                                              {                                                              {
1586                                                                  using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))                                                                  byte value = 0;
1587                                                                    if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)
1588                                                                  {                                                                  {
1589                                                                      try                                                                      using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
                                                                     {  
                                                                         gmp.OpenProvider();  
                                                                         gmp.ReadMemory(address, out value);  
                                                                         gmp.CloseProvider();  
                                                                     }  
                                                                     catch (Exception ex)  
1590                                                                      {                                                                      {
1591                                                                          logger.VerboseError.WriteLine(ex.ToString());                                                                          try
1592                                                                            {
1593                                                                                gmp.OpenProvider();
1594                                                                                gmp.ReadMemory(address, out value);
1595                                                                                gmp.CloseProvider();
1596                                                                            }
1597                                                                            catch (Exception ex)
1598                                                                            {
1599                                                                                logger.VerboseError.WriteLine(ex.ToString());
1600                                                                            }
1601                                                                      }                                                                      }
1602                                                                        comparer.Value = value;
1603                                                                    }
1604                                                                    else
1605                                                                    {
1606                                                                        value = Convert.ToByte(SearchArgs.CompareStartValue);
1607                                                                        comparer.Value = value;
1608                                                                    }
1609                                                                    if (comparer.Compare(lookup_value, value))
1610                                                                    {
1611                                                                        second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));
1612                                                                  }                                                                  }
                                                                 comparer.Value = value;  
                                                             }  
                                                             else  
                                                             {  
                                                                 value = Convert.ToByte(SearchArgs.CompareStartValue);  
                                                                 comparer.Value = value;  
                                                             }  
                                                             if (comparer.Compare(lookup_value, value))  
                                                             {  
                                                                 second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));  
1613                                                              }                                                              }
1614                                                          }                                                          }
1615                                                      }                                                          else
                                                     else  
                                                     {  
                                                         sbyte lookup_value = 0;  
                                                         //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }  
                                                         lookup_value = Convert.ToSByte(result_value);  
                                                         using (_8bit_signed_comparer_ comparer = new _8bit_signed_comparer_(SearchArgs, address))  
1616                                                          {                                                          {
1617                                                              sbyte value = 0;                                                              sbyte lookup_value = 0;
1618                                                              if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)                                                              //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }
1619                                                                lookup_value = Convert.ToSByte(result_value);
1620                                                                using (_8bit_signed_comparer_ comparer = new _8bit_signed_comparer_(SearchArgs, address))
1621                                                              {                                                              {
1622                                                                  using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))                                                                  sbyte value = 0;
1623                                                                    if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)
1624                                                                  {                                                                  {
1625                                                                      try                                                                      using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
                                                                     {  
                                                                         gmp.OpenProvider();  
                                                                         gmp.ReadMemory(address, out value);  
                                                                         gmp.CloseProvider();  
                                                                     }  
                                                                     catch (Exception ex)  
1626                                                                      {                                                                      {
1627                                                                          logger.VerboseError.WriteLine(ex.ToString());                                                                          try
1628                                                                            {
1629                                                                                gmp.OpenProvider();
1630                                                                                gmp.ReadMemory(address, out value);
1631                                                                                gmp.CloseProvider();
1632                                                                            }
1633                                                                            catch (Exception ex)
1634                                                                            {
1635                                                                                logger.VerboseError.WriteLine(ex.ToString());
1636                                                                            }
1637                                                                      }                                                                      }
1638                                                                        comparer.Value = value;
1639                                                                    }
1640                                                                    else
1641                                                                    {
1642                                                                        value = Convert.ToSByte(SearchArgs.CompareStartValue);
1643                                                                    }
1644                                                                    if (comparer.Compare(lookup_value, value))
1645                                                                    {
1646                                                                        second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));
1647                                                                  }                                                                  }
                                                                 comparer.Value = value;  
                                                             }  
                                                             else  
                                                             {  
                                                                 value = Convert.ToSByte(SearchArgs.CompareStartValue);  
                                                             }  
                                                             if (comparer.Compare(lookup_value, value))  
                                                             {  
                                                                 second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));  
1648                                                              }                                                              }
1649                                                          }                                                          }
1650                                                      }                                                          break;
1651                                                      break;                                                      #endregion
1652                                                  #endregion                                                      #region case SearchDataTypes._16bits:
1653                                                  #region case SearchDataTypes._16bits:                                                      case SearchDataTypes._16bits:
1654                                                  case SearchDataTypes._16bits:                                                          if (SearchArgs.IsUnsignedDataType)
1655                                                      if (SearchArgs.IsUnsignedDataType)                                                          {
1656                                                      {                                                              ushort lookup_value = 0;
1657                                                          ushort lookup_value = 0;                                                              //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }
1658                                                          //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }                                                              lookup_value = Convert.ToUInt16(result_value);
1659                                                          lookup_value = Convert.ToUInt16(result_value);                                                              using (_16bit_unsigned_comparer_ comparer = new _16bit_unsigned_comparer_(SearchArgs, address))
                                                         using (_16bit_unsigned_comparer_ comparer = new _16bit_unsigned_comparer_(SearchArgs, address))  
                                                         {  
                                                             ushort value = 0;  
                                                             if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)  
1660                                                              {                                                              {
1661                                                                  using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))                                                                  ushort value = 0;
1662                                                                    if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)
1663                                                                  {                                                                  {
1664                                                                      try                                                                      using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
1665                                                                      {                                                                      {
1666                                                                          gmp.OpenProvider();                                                                          try
1667                                                                          gmp.ReadMemory(address, out value);                                                                          {
1668                                                                          gmp.CloseProvider();                                                                              gmp.OpenProvider();
1669                                                                      }                                                                              gmp.ReadMemory(address, out value);
1670                                                                      catch (Exception ex)                                                                              gmp.CloseProvider();
1671                                                                      {                                                                          }
1672                                                                          logger.VerboseError.WriteLine(ex.ToString());                                                                          catch (Exception ex)
1673                                                                            {
1674                                                                                logger.VerboseError.WriteLine(ex.ToString());
1675                                                                            }
1676                                                                      }                                                                      }
1677                                                                        comparer.Value = value;
1678                                                                    }
1679                                                                    else
1680                                                                    {
1681                                                                        value = Convert.ToUInt16(SearchArgs.CompareStartValue);
1682                                                                        comparer.Value = value;
1683                                                                    }
1684                                                                    if (comparer.Compare(lookup_value, value))
1685                                                                    {
1686                                                                        second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));
1687                                                                  }                                                                  }
                                                                 comparer.Value = value;  
                                                             }  
                                                             else  
                                                             {  
                                                                 value = Convert.ToUInt16(SearchArgs.CompareStartValue);  
                                                                 comparer.Value = value;  
                                                             }  
                                                             if (comparer.Compare(lookup_value, value))  
                                                             {  
                                                                 second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));  
1688                                                              }                                                              }
1689                                                          }                                                          }
1690                                                      }                                                          else
                                                     else  
                                                     {  
                                                         short lookup_value = 0;  
                                                         //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }  
                                                         lookup_value = Convert.ToInt16(result_value);  
                                                         using (_16bit_signed_comparer_ comparer = new _16bit_signed_comparer_(SearchArgs, address))  
1691                                                          {                                                          {
1692                                                              short value = 0;                                                              short lookup_value = 0;
1693                                                              if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)                                                              //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }
1694                                                                lookup_value = Convert.ToInt16(result_value);
1695                                                                using (_16bit_signed_comparer_ comparer = new _16bit_signed_comparer_(SearchArgs, address))
1696                                                              {                                                              {
1697                                                                  using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))                                                                  short value = 0;
1698                                                                    if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)
1699                                                                  {                                                                  {
1700                                                                      try                                                                      using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
                                                                     {  
                                                                         gmp.OpenProvider();  
                                                                         gmp.ReadMemory(address, out value);  
                                                                         gmp.CloseProvider();  
                                                                     }  
                                                                     catch (Exception ex)  
1701                                                                      {                                                                      {
1702                                                                          logger.VerboseError.WriteLine(ex.ToString());                                                                          try
1703                                                                            {
1704                                                                                gmp.OpenProvider();
1705                                                                                gmp.ReadMemory(address, out value);
1706                                                                                gmp.CloseProvider();
1707                                                                            }
1708                                                                            catch (Exception ex)
1709                                                                            {
1710                                                                                logger.VerboseError.WriteLine(ex.ToString());
1711                                                                            }
1712                                                                      }                                                                      }
1713                                                                        comparer.Value = value;
1714                                                                    }
1715                                                                    else
1716                                                                    {
1717                                                                        value = Convert.ToInt16(SearchArgs.CompareStartValue);
1718                                                                    }
1719                                                                    if (comparer.Compare(lookup_value, value))
1720                                                                    {
1721                                                                        second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));
1722                                                                  }                                                                  }
                                                                 comparer.Value = value;  
                                                             }  
                                                             else  
                                                             {  
                                                                 value = Convert.ToInt16(SearchArgs.CompareStartValue);  
                                                             }  
                                                             if (comparer.Compare(lookup_value, value))  
                                                             {  
                                                                 second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));  
1723                                                              }                                                              }
1724                                                          }                                                          }
1725                                                      }                                                          break;
1726                                                      break;                                                      #endregion
1727                                                  #endregion                                                      #region case SearchDataTypes._32bits:
1728                                                  #region case SearchDataTypes._32bits:                                                      case SearchDataTypes._32bits:
1729                                                  case SearchDataTypes._32bits:                                                          if (SearchArgs.IsUnsignedDataType)
1730                                                      if (SearchArgs.IsUnsignedDataType)                                                          {
1731                                                      {                                                              uint lookup_value = 0;
1732                                                          uint lookup_value = 0;                                                              //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }
1733                                                          //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }                                                              lookup_value = Convert.ToUInt32(result_value);
1734                                                          lookup_value = Convert.ToUInt32(result_value);                                                              using (_32bit_unsigned_comparer_ comparer = new _32bit_unsigned_comparer_(SearchArgs, address))
                                                         using (_32bit_unsigned_comparer_ comparer = new _32bit_unsigned_comparer_(SearchArgs, address))  
                                                         {  
                                                             uint value = 0;  
                                                             if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)  
1735                                                              {                                                              {
1736                                                                  using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))                                                                  uint value = 0;
1737                                                                    if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)
1738                                                                  {                                                                  {
1739                                                                      try                                                                      using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
1740                                                                      {                                                                      {
1741                                                                          gmp.OpenProvider();                                                                          try
1742                                                                          gmp.ReadMemory(address, out value);                                                                          {
1743                                                                          gmp.CloseProvider();                                                                              gmp.OpenProvider();
1744                                                                      }                                                                              gmp.ReadMemory(address, out value);
1745                                                                      catch (Exception ex)                                                                              gmp.CloseProvider();
1746                                                                      {                                                                          }
1747                                                                          logger.VerboseError.WriteLine(ex.ToString());                                                                          catch (Exception ex)
1748                                                                            {
1749                                                                                logger.VerboseError.WriteLine(ex.ToString());
1750                                                                            }
1751                                                                      }                                                                      }
1752                                                                        comparer.Value = value;
1753                                                                    }
1754                                                                    else
1755                                                                    {
1756                                                                        value = Convert.ToUInt32(SearchArgs.CompareStartValue);
1757                                                                        comparer.Value = value;
1758                                                                    }
1759                                                                    if (comparer.Compare(lookup_value, value))
1760                                                                    {
1761                                                                        second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));
1762                                                                  }                                                                  }
                                                                 comparer.Value = value;  
                                                             }  
                                                             else  
                                                             {  
                                                                 value = Convert.ToUInt32(SearchArgs.CompareStartValue);  
                                                                 comparer.Value = value;  
                                                             }  
                                                             if (comparer.Compare(lookup_value, value))  
                                                             {  
                                                                 second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));  
1763                                                              }                                                              }
1764                                                          }                                                          }
1765                                                      }                                                          else
                                                     else  
                                                     {  
                                                         int lookup_value = 0;  
                                                         //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }  
                                                         lookup_value = Convert.ToInt32(result_value);  
                                                         using (_32bit_signed_comparer_ comparer = new _32bit_signed_comparer_(SearchArgs, address))  
1766                                                          {                                                          {
1767                                                              int value = 0;                                                              int lookup_value = 0;
1768                                                              if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)                                                              //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }
1769                                                                lookup_value = Convert.ToInt32(result_value);
1770                                                                using (_32bit_signed_comparer_ comparer = new _32bit_signed_comparer_(SearchArgs, address))
1771                                                              {                                                              {
1772                                                                  using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))                                                                  int value = 0;
1773                                                                    if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)
1774                                                                  {                                                                  {
1775                                                                      try                                                                      using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
1776                                                                      {                                                                      {
1777                                                                          gmp.OpenProvider();                                                                          try
1778                                                                          gmp.ReadMemory(address, out value);                                                                          {
1779                                                                          gmp.CloseProvider();                                                                              gmp.OpenProvider();
1780                                                                      }                                                                              gmp.ReadMemory(address, out value);
1781                                                                      catch (Exception ex)                                                                              gmp.CloseProvider();
1782                                                                      {                                                                          }
1783                                                                          logger.VerboseError.WriteLine(ex.ToString());                                                                          catch (Exception ex)
1784                                                                            {
1785                                                                                logger.VerboseError.WriteLine(ex.ToString());
1786                                                                            }
1787                                                                      }                                                                      }
1788                                                                        comparer.Value = value;
1789                                                                    }
1790                                                                    else
1791                                                                    {
1792                                                                        value = Convert.ToInt32(SearchArgs.CompareStartValue);
1793                                                                    }
1794                                                                    if (comparer.Compare(lookup_value, value))
1795                                                                    {
1796                                                                        second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));
1797                                                                  }                                                                  }
                                                                 comparer.Value = value;  
                                                             }  
                                                             else  
                                                             {  
                                                                 value = Convert.ToInt32(SearchArgs.CompareStartValue);  
                                                             }  
                                                             if (comparer.Compare(lookup_value, value))  
                                                             {  
                                                                 second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));  
1798                                                              }                                                              }
1799                                                          }                                                          }
1800                                                      }                                                          break;
1801                                                      break;                                                      #endregion
1802                                                  #endregion                                                      #region case SearchDataTypes._64bits:
1803                                                  #region case SearchDataTypes._64bits:                                                      case SearchDataTypes._64bits:
1804                                                  case SearchDataTypes._64bits:                                                          if (SearchArgs.IsUnsignedDataType)
1805                                                      if (SearchArgs.IsUnsignedDataType)                                                          {
1806                                                      {                                                              ulong lookup_value = 0;
1807                                                          ulong lookup_value = 0;                                                              //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }
1808                                                          //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }                                                              lookup_value = Convert.ToUInt64(result_value);
1809                                                          lookup_value = Convert.ToUInt64(result_value);                                                              using (_64bit_unsigned_comparer_ comparer = new _64bit_unsigned_comparer_(SearchArgs, address))
                                                         using (_64bit_unsigned_comparer_ comparer = new _64bit_unsigned_comparer_(SearchArgs, address))  
                                                         {  
                                                             ulong value = 0;  
                                                             if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)  
1810                                                              {                                                              {
1811                                                                  using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))                                                                  ulong value = 0;
1812                                                                    if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)
1813                                                                  {                                                                  {
1814                                                                      try                                                                      using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
                                                                     {  
                                                                         gmp.OpenProvider();  
                                                                         gmp.ReadMemory(address, out value);  
                                                                         gmp.CloseProvider();  
                                                                     }  
                                                                     catch (Exception ex)  
1815                                                                      {                                                                      {
1816                                                                          logger.VerboseError.WriteLine(ex.ToString());                                                                          try
1817                                                                            {
1818                                                                                gmp.OpenProvider();
1819                                                                                gmp.ReadMemory(address, out value);
1820                                                                                gmp.CloseProvider();
1821                                                                            }
1822                                                                            catch (Exception ex)
1823                                                                            {
1824                                                                                logger.VerboseError.WriteLine(ex.ToString());
1825                                                                            }
1826                                                                      }                                                                      }
1827                                                                        comparer.Value = value;
1828                                                                    }
1829                                                                    else
1830                                                                    {
1831                                                                        value = Convert.ToUInt64(SearchArgs.CompareStartValue);
1832                                                                        comparer.Value = value;
1833                                                                    }
1834                                                                    if (comparer.Compare(lookup_value, value))
1835                                                                    {
1836                                                                        second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));
1837                                                                  }                                                                  }
                                                                 comparer.Value = value;  
                                                             }  
                                                             else  
                                                             {  
                                                                 value = Convert.ToUInt64(SearchArgs.CompareStartValue);  
                                                                 comparer.Value = value;  
                                                             }  
                                                             if (comparer.Compare(lookup_value, value))  
                                                             {  
                                                                 second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));  
1838                                                              }                                                              }
1839                                                          }                                                          }
1840                                                      }                                                          else
                                                     else  
                                                     {  
                                                         long lookup_value = 0;  
                                                         //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }  
                                                         lookup_value = Convert.ToInt64(result_value);  
                                                         using (_64bit_signed_comparer_ comparer = new _64bit_signed_comparer_(SearchArgs, address))  
1841                                                          {                                                          {
1842                                                              long value = 0;                                                              long lookup_value = 0;
1843                                                              if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)                                                              //using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this)) { gmp.OpenProvider(); gmp.ReadMemory(address, out lookup_value); gmp.CloseProvider(); }
1844                                                                lookup_value = Convert.ToInt64(result_value);
1845                                                                using (_64bit_signed_comparer_ comparer = new _64bit_signed_comparer_(SearchArgs, address))
1846                                                              {                                                              {
1847                                                                  using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))                                                                  long value = 0;
1848                                                                    if (SearchArgs.CompareValueType == CompareValueTypes.OldValue)
1849                                                                  {                                                                  {
1850                                                                      try                                                                      using (GenericMemoryProvider gmp = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
1851                                                                      {                                                                      {
1852                                                                          gmp.OpenProvider();                                                                          try
1853                                                                          gmp.ReadMemory(address, out value);                                                                          {
1854                                                                          gmp.CloseProvider();                                                                              gmp.OpenProvider();
1855                                                                      }                                                                              gmp.ReadMemory(address, out value);
1856                                                                      catch (Exception ex)                                                                              gmp.CloseProvider();
1857                                                                      {                                                                          }
1858                                                                          logger.VerboseError.WriteLine(ex.ToString());                                                                          catch (Exception ex)
1859                                                                            {
1860                                                                                logger.VerboseError.WriteLine(ex.ToString());
1861                                                                            }
1862                                                                      }                                                                      }
1863                                                                        comparer.Value = value;
1864                                                                    }
1865                                                                    else
1866                                                                    {
1867                                                                        value = Convert.ToInt64(SearchArgs.CompareStartValue);
1868                                                                    }
1869                                                                    if (comparer.Compare(lookup_value, value))
1870                                                                    {
1871                                                                        second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));
1872                                                                  }                                                                  }
                                                                 comparer.Value = value;  
                                                             }  
                                                             else  
                                                             {  
                                                                 value = Convert.ToInt64(SearchArgs.CompareStartValue);  
                                                             }  
                                                             if (comparer.Compare(lookup_value, value))  
                                                             {  
                                                                 second_tmp_Results.Add(new ResultType<object>(comparer.Address, comparer.Value));  
1873                                                              }                                                              }
1874                                                          }                                                          }
1875                                                      }                                                          break;
1876                                                      break;                                                      #endregion
1877                                                  #endregion                                                      #endregion
1878                                                  #endregion                                                  }
1879                                              }                                                  double double_percent_done = 100.0 * (double)((double)i / (double)reader.ResultCount);
1880                                              double double_percent_done = 100.0 * (double)((double)i / (double)reader.ResultCount);                                                  int int_percent_done = (int)double_percent_done;
1881                                              int int_percent_done = (int)double_percent_done;                                                  //if (int_percent_done != Last_Whole_Percent_Done && i % 100000 == 0)
1882                                              //if (int_percent_done != Last_Whole_Percent_Done && i % 100000 == 0)                                                  //{
1883                                              //{                                                  if (int_percent_done <= 100)
1884                                              if (int_percent_done <= 100)                                                  {
1885                                              {                                                      resultsprogress.Value = int_percent_done;
1886                                                  resultsprogress.Value = int_percent_done;                                                      resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", i + MemoryRangeStart);
1887                                                  resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", i + MemoryRangeStart);                                                      //Last_Whole_Percent_Done = int_percent_done;
1888                                                  //Last_Whole_Percent_Done = int_percent_done;                                                  }
1889                                                    //}
1890                                                    //this.Refresh();
1891                                              }                                              }
                                             //}  
                                             //this.Refresh();  
1892                                          }                                          }
1893                                            #endregion
1894                                        }
1895                                        catch (Exception ex)
1896                                        {
1897                                            throw ex;
1898                                      }                                      }
                                     #endregion  
                                 }  
                                 catch (Exception ex)  
                                 {  
                                     throw ex;  
1899                                  }                                  }
1900                              }                              }
1901                                catch (Exception ex)
1902                                {
1903                                    throw ex;
1904                                }
1905                                st_nonrange_search.Stop();
1906                                logger.Profiler.WriteLine("Non-Ranged search took a total of {0} seconds to complete.", st_nonrange_search.Elapsed.TotalSeconds);
1907                                //Last_Whole_Percent_Done = 0;
1908                          }                          }
                         catch (Exception ex)  
                         {  
                             throw ex;  
                         }  
                         st_nonrange_search.Stop();  
                         logger.Profiler.WriteLine("Non-Ranged search took a total of {0} seconds to complete.", st_nonrange_search.Elapsed.TotalSeconds);  
                         //Last_Whole_Percent_Done = 0;  
1909                          #endregion                          #endregion
1910                      }                      }
1911                      #region Ranged Searches                      #region Ranged Searches
# Line 1976  namespace RomCheater.Docking Line 1989  namespace RomCheater.Docking
1989    
1990                  }                  }
1991                  #endregion                  #endregion
1992                  // leave SearchArgs.Results alone, if false                  //// leave SearchArgs.Results alone, if false
1993                  if (NeedToCompare)                  //if (NeedToCompare)
1994                  {                  //{
1995                      // fix addresses when memory start is not zero                  //    // fix addresses when memory start is not zero
1996                      if (MemoryRangeStart > 0 && SearchArgs.IsFirstSearch) { for (int i = 0; i < second_tmp_Results.Count; i++) { second_tmp_Results[i].Address = second_tmp_Results[i].Address + MemoryRangeStart; } }                  //    if (MemoryRangeStart > 0 && SearchArgs.IsFirstSearch) { for (int i = 0; i < second_tmp_Results.Count; i++) { second_tmp_Results[i].Address = second_tmp_Results[i].Address + MemoryRangeStart; } }
1997                      using (SearchResultWriter writer = new SearchResultWriter(second_tmp_Results.Count, SearchGuid))                  //    using (SearchResultWriter writer = new SearchResultWriter(second_tmp_Results.Count, SearchGuid))
1998                      {                  //    {
1999                          for (int i = 0; i < second_tmp_Results.Count; i++)                  //        for (int i = 0; i < second_tmp_Results.Count; i++)
2000                          {                  //        {
2001                              switch (sdt)                  //            switch (sdt)
2002                              {                  //            {
2003                                  case SearchDataTypes._8bits:                  //                case SearchDataTypes._8bits:
2004                                      if (unsigned) { writer.WriteResult<Byte>(second_tmp_Results[i].Address, Convert.ToByte(second_tmp_Results[i].Value)); }                  //                    if (unsigned) { writer.WriteResult<Byte>(second_tmp_Results[i].Address, Convert.ToByte(second_tmp_Results[i].Value)); }
2005                                      else { writer.WriteResult<SByte>(second_tmp_Results[i].Address, Convert.ToSByte(second_tmp_Results[i].Value)); } break;                  //                    else { writer.WriteResult<SByte>(second_tmp_Results[i].Address, Convert.ToSByte(second_tmp_Results[i].Value)); } break;
2006                                  case SearchDataTypes._16bits:                  //                case SearchDataTypes._16bits:
2007                                      if (unsigned) { writer.WriteResult<UInt16>(second_tmp_Results[i].Address, Convert.ToUInt16(second_tmp_Results[i].Value)); }                  //                    if (unsigned) { writer.WriteResult<UInt16>(second_tmp_Results[i].Address, Convert.ToUInt16(second_tmp_Results[i].Value)); }
2008                                      else { writer.WriteResult<Int16>(second_tmp_Results[i].Address, Convert.ToInt16(second_tmp_Results[i].Value)); } break;                  //                    else { writer.WriteResult<Int16>(second_tmp_Results[i].Address, Convert.ToInt16(second_tmp_Results[i].Value)); } break;
2009                                  case SearchDataTypes._32bits:                  //                case SearchDataTypes._32bits:
2010                                      if (unsigned) { writer.WriteResult<UInt32>(second_tmp_Results[i].Address, Convert.ToUInt32(second_tmp_Results[i].Value)); }                  //                    if (unsigned) { writer.WriteResult<UInt32>(second_tmp_Results[i].Address, Convert.ToUInt32(second_tmp_Results[i].Value)); }
2011                                      else { writer.WriteResult<Int32>(second_tmp_Results[i].Address, Convert.ToInt32(second_tmp_Results[i].Value)); } break;                  //                    else { writer.WriteResult<Int32>(second_tmp_Results[i].Address, Convert.ToInt32(second_tmp_Results[i].Value)); } break;
2012                                  case SearchDataTypes._64bits:                  //                case SearchDataTypes._64bits:
2013                                      if (unsigned) { writer.WriteResult<UInt64>(second_tmp_Results[i].Address, Convert.ToUInt64(second_tmp_Results[i].Value)); }                  //                    if (unsigned) { writer.WriteResult<UInt64>(second_tmp_Results[i].Address, Convert.ToUInt64(second_tmp_Results[i].Value)); }
2014                                      else { writer.WriteResult<Int64>(second_tmp_Results[i].Address, Convert.ToInt64(second_tmp_Results[i].Value)); } break;                  //                    else { writer.WriteResult<Int64>(second_tmp_Results[i].Address, Convert.ToInt64(second_tmp_Results[i].Value)); } break;
2015                              }                  //            }
2016                          }                  //        }
2017                      }                  //    }
2018                      second_tmp_Results = null; // free memory                                        //    second_tmp_Results = null; // free memory                      
2019                  }                  //}
2020              }              }
2021              catch (Exception ex)              catch (Exception ex)
2022              {              {
# Line 2044  namespace RomCheater.Docking Line 2057  namespace RomCheater.Docking
2057                  if (reader.ResultCount <= MIN_NUMBER_OF_RESULTS_BEFORE_DISPLAY)                  if (reader.ResultCount <= MIN_NUMBER_OF_RESULTS_BEFORE_DISPLAY)
2058                  {                  {
2059                      lstResults.Items.Clear();                      lstResults.Items.Clear();
2060                      List<ResultItem> items = new List<ResultItem>();                      //List<ResultItem> items = new List<ResultItem>();
2061                      for (int i = 0; i < reader.ResultCount; i++)                      //for (int i = 0; i < reader.ResultCount; i++)
2062                      {                      //{
2063                          ResultItem item = new ResultItem(0, false);                      //    ResultItem item = new ResultItem(0, false);
2064                          //item.Text = string.Format("0x{0:x8}", SearchArgs.Results[i].Address);                      //    //item.Text = string.Format("0x{0:x8}", SearchArgs.Results[i].Address);
2065                          //item.SubItems.Add(string.Format("0x{0:x8}", SearchArgs.Results[i].Address));                      //    //item.SubItems.Add(string.Format("0x{0:x8}", SearchArgs.Results[i].Address));
2066                          switch (SearchArgs.DataType)                      //    switch (SearchArgs.DataType)
2067                          {                      //    {
2068                        //        case SearchDataTypes._8bits:
2069                              case SearchDataTypes._8bits:                      //            if (SearchArgs.IsUnsignedDataType) { ResultType<byte> result = new ResultType<byte>(); item = new ResultItem(result.Address, false, result.Value); }
2070                                  if (SearchArgs.IsUnsignedDataType) { ResultType<byte> result = new ResultType<byte>(); item = new ResultItem(result.Address, false, result.Value); }                      //            else { ResultType<sbyte> result = reader.GetNextResult<sbyte>(); item = new ResultItem(result.Address, false, result.Value); }
2071                                  else { ResultType<sbyte> result = reader.GetNextResult<sbyte>(); item = new ResultItem(result.Address, false, result.Value); }                      //            break;
2072                                  break;                      //        case SearchDataTypes._16bits:
2073                              case SearchDataTypes._16bits:                      //            if (SearchArgs.IsUnsignedDataType) { ResultType<ushort> result = reader.GetNextResult<ushort>(); item = new ResultItem(result.Address, false, result.Value); }
2074                                  if (SearchArgs.IsUnsignedDataType) { ResultType<ushort> result = reader.GetNextResult<ushort>(); item = new ResultItem(result.Address, false, result.Value); }                      //            else { ResultType<short> result = reader.GetNextResult<short>(); item = new ResultItem(result.Address, false, result.Value); }
2075                                  else { ResultType<short> result = reader.GetNextResult<short>(); item = new ResultItem(result.Address, false, result.Value); }                      //            break;
2076                                  break;                      //        case SearchDataTypes._32bits:
2077                              case SearchDataTypes._32bits:                      //            if (SearchArgs.IsUnsignedDataType) { ResultType<uint> result = reader.GetNextResult<uint>(); item = new ResultItem(result.Address, false, result.Value); }
2078                                  if (SearchArgs.IsUnsignedDataType) { ResultType<uint> result = reader.GetNextResult<uint>(); item = new ResultItem(result.Address, false, result.Value); }                      //            else { ResultType<int> result = reader.GetNextResult<int>(); item = new ResultItem(result.Address, false, result.Value); }
2079                                  else { ResultType<int> result = reader.GetNextResult<int>(); item = new ResultItem(result.Address, false, result.Value); }                      //            break;
2080                                  break;                      //        case SearchDataTypes._64bits:
2081                              case SearchDataTypes._64bits:                      //            if (SearchArgs.IsUnsignedDataType) { ResultType<ulong> result = reader.GetNextResult<ulong>(); item = new ResultItem(result.Address, false, result.Value); }
2082                                  if (SearchArgs.IsUnsignedDataType) { ResultType<ulong> result = reader.GetNextResult<ulong>(); item = new ResultItem(result.Address, false, result.Value); }                      //            else { ResultType<long> result = reader.GetNextResult<long>(); item = new ResultItem(result.Address, false, result.Value); }
2083                                  else { ResultType<long> result = reader.GetNextResult<long>(); item = new ResultItem(result.Address, false, result.Value); }                      //            break;
2084                                  break;                      //    }
2085                          }                      //    if (!items.Contains(item))
2086                        //        items.Add(item);
2087                          if (!items.Contains(item))                      //}
2088                              items.Add(item);                      lstResults.Items.AddRange(reader.GetResultItems(SearchArgs, (IAcceptsProcessAndConfig)this, resultsprogress));
                     }  
                     lstResults.Items.AddRange(items.ToArray());  
2089                  }                  }
2090              }              }
2091    

Legend:
Removed from v.456  
changed lines
  Added in v.457

  ViewVC Help
Powered by ViewVC 1.1.22