Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Also prevent repeated calls into GetAssemblyDirectory and GetXmlConfigFileName when their respective searches are not successful. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
384b2aecc24bf1f2f46fd922fc4dced7 |
User & Date: | mistachkin 2017-05-12 20:43:17.385 |
References
2017-05-12
| ||
20:45 | Cherrypick of [384b2aecc24bf1], avoid repeated calls into GetAssemblyDirectory/GetXmlConfigFileName for null returns. check-in: 6058d5f357 user: mistachkin tags: branch-1.0.105 | |
Context
2017-05-13
| ||
05:42 | Merge in applicable changes from the 1.0.105.1 release. check-in: c2adf5a112 user: mistachkin tags: trunk | |
2017-05-12
| ||
20:45 | Cherrypick of [384b2aecc24bf1], avoid repeated calls into GetAssemblyDirectory/GetXmlConfigFileName for null returns. check-in: 6058d5f357 user: mistachkin tags: branch-1.0.105 | |
20:43 | Also prevent repeated calls into GetAssemblyDirectory and GetXmlConfigFileName when their respective searches are not successful. check-in: 384b2aecc2 user: mistachkin tags: trunk | |
2017-05-11
| ||
15:54 | Update version history docs. check-in: 13fa3545f6 user: mistachkin tags: trunk | |
Changes
Changes to System.Data.SQLite/UnsafeNativeMethods.cs.
︙ | |||
689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 | 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 | + + + + + + + + + + + + + + + + + + + + + + | /// <see cref="GetAssemblyDirectory" /> method -OR- null if that method /// has never returned a valid value. /// </summary> private static string cachedAssemblyDirectory; ///////////////////////////////////////////////////////////////////////// /// <summary> /// When this field is non-zero, it indicates the /// <see cref="GetAssemblyDirectory" /> method was not able to locate a /// suitable assembly directory. The /// <see cref="GetCachedAssemblyDirectory" /> method will check this /// field and skips calls into the <see cref="GetAssemblyDirectory" /> /// method whenever it is non-zero. /// </summary> private static bool noAssemblyDirectory; ///////////////////////////////////////////////////////////////////////// /// <summary> /// This is the cached return value from the /// <see cref="GetXmlConfigFileName" /> method -OR- null if that method /// has never returned a valid value. /// </summary> private static string cachedXmlConfigFileName; ///////////////////////////////////////////////////////////////////////// /// <summary> /// When this field is non-zero, it indicates the /// <see cref="GetXmlConfigFileName" /> method was not able to locate a /// suitable XML configuration file name. The /// <see cref="GetCachedXmlConfigFileName" /> method will check this /// field and skips calls into the <see cref="GetXmlConfigFileName" /> /// method whenever it is non-zero. /// </summary> private static bool noXmlConfigFileName; #endregion ///////////////////////////////////////////////////////////////////////// /// <summary> /// For now, this method simply calls the Initialize method. /// </summary> static UnsafeNativeMethods() |
︙ | |||
845 846 847 848 849 850 851 852 853 854 855 856 857 858 | 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 | + | DebugData.IncrementOtherCount("Method_ResetCachedXmlConfigFileName"); #endif #endregion lock (staticSyncRoot) { cachedXmlConfigFileName = null; noXmlConfigFileName = false; } } ///////////////////////////////////////////////////////////////////////// /// <summary> /// Queries and returns the cached XML configuration file name for the /// assembly containing the managed System.Data.SQLite components, if |
︙ | |||
872 873 874 875 876 877 878 879 880 881 882 883 884 885 | 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 | + + + | #endif #endregion lock (staticSyncRoot) { if (cachedXmlConfigFileName != null) return cachedXmlConfigFileName; if (noXmlConfigFileName) return null; } return GetXmlConfigFileName(); } ///////////////////////////////////////////////////////////////////////// /// <summary> |
︙ | |||
924 925 926 927 928 929 930 931 932 933 934 935 936 937 | 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 | + + + + + | lock (staticSyncRoot) { cachedXmlConfigFileName = fileName; } return fileName; } lock (staticSyncRoot) { noXmlConfigFileName = true; } return null; } ///////////////////////////////////////////////////////////////////////// /// <summary> |
︙ | |||
1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 | 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 | + | DebugData.IncrementOtherCount("Method_ResetCachedAssemblyDirectory"); #endif #endregion lock (staticSyncRoot) { cachedAssemblyDirectory = null; noAssemblyDirectory = false; } } ///////////////////////////////////////////////////////////////////////// /// <summary> /// Queries and returns the cached directory for the assembly currently /// being executed, if available. If the cached assembly directory value |
︙ | |||
1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 | 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 | + + + | #endif #endregion lock (staticSyncRoot) { if (cachedAssemblyDirectory != null) return cachedAssemblyDirectory; if (noAssemblyDirectory) return null; } return GetAssemblyDirectory(); } ///////////////////////////////////////////////////////////////////////// /// <summary> |
︙ | |||
1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 | 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + | #endregion try { Assembly assembly = Assembly.GetExecutingAssembly(); if (assembly == null) { lock (staticSyncRoot) { noAssemblyDirectory = true; } return null; } string fileName = null; #if PLATFORM_COMPACTFRAMEWORK AssemblyName assemblyName = assembly.GetName(); if (assemblyName == null) { lock (staticSyncRoot) { noAssemblyDirectory = true; } return null; } fileName = assemblyName.CodeBase; #else if (!CheckAssemblyCodeBase(assembly, ref fileName)) fileName = assembly.Location; #endif if (String.IsNullOrEmpty(fileName)) { lock (staticSyncRoot) { noAssemblyDirectory = true; } return null; } string directory = Path.GetDirectoryName(fileName); if (String.IsNullOrEmpty(directory)) { lock (staticSyncRoot) { noAssemblyDirectory = true; } return null; } lock (staticSyncRoot) { cachedAssemblyDirectory = directory; } return directory; |
︙ | |||
1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 | 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 | + + + + + | } catch { // do nothing. } #endif } lock (staticSyncRoot) { noAssemblyDirectory = true; } return null; } #endregion ///////////////////////////////////////////////////////////////////////// |
︙ |