{"action":"created","issue":{"url":"https://api.github.com/repos/KindDragon/vld/issues/8","labels_url":"https://api.github.com/repos/KindDragon/vld/issues/8/labels{/name}","comments_url":"https://api.github.com/repos/KindDragon/vld/issues/8/comments","events_url":"https://api.github.com/repos/KindDragon/vld/issues/8/events","html_url":"https://github.com/KindDragon/vld/pull/8","id":109194404,"number":8,"title":"Work performed on various issues","user":{"login":"ioannis-e","id":5904989,"avatar_url":"https://avatars.githubusercontent.com/u/5904989?v=3","gravatar_id":"","url":"https://api.github.com/users/ioannis-e","html_url":"https://github.com/ioannis-e","followers_url":"https://api.github.com/users/ioannis-e/followers","following_url":"https://api.github.com/users/ioannis-e/following{/other_user}","gists_url":"https://api.github.com/users/ioannis-e/gists{/gist_id}","starred_url":"https://api.github.com/users/ioannis-e/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ioannis-e/subscriptions","organizations_url":"https://api.github.com/users/ioannis-e/orgs","repos_url":"https://api.github.com/users/ioannis-e/repos","events_url":"https://api.github.com/users/ioannis-e/events{/privacy}","received_events_url":"https://api.github.com/users/ioannis-e/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-09-30T22:34:31Z","updated_at":"2015-10-02T19:32:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/KindDragon/vld/pulls/8","html_url":"https://github.com/KindDragon/vld/pull/8","diff_url":"https://github.com/KindDragon/vld/pull/8.diff","patch_url":"https://github.com/KindDragon/vld/pull/8.patch"},"body":"The highlights of the changes made are as follows:\r\n- Install a hook on LdrpCallInitRoutine() or the relevant nt loader code to cover all Windows XP to Windows 10, x86 and x64 platforms in order to Refresh Modules before the dll entry point. The current implementation Refreshes the Modules after the dll entry point which in effect does not detect any allocations made on dll entry point.\r\n- Fix #9519, #9859, #10544, use LoaderLock to serialize any calls which load additional libraries or require access to the Loader Lock.\r\n- Fix #6359, #10553, fix crashes and failure to register COM dlls where Visual Leak Detector is unloaded before IMalloc interface is released.\r\n- Optimize _GetProcAddress  and _GetProcAddressForCaller to properly test for ordinal vs function name\r\n- Append Visual Studio 2015/2013/2012/2010/2008 symbols cache directory where multiple VS versions are installed on the same system.\r\n- Add option to skip reporting crt startup allocations as memory leaks\r\n - for debug runtime (where debug crt allocations are not properly identied) and\r\n - for release runtime (by excluding certain startup crt initialisation modules), this may have an effect in performance.\r\n- Improve the vld.ini searching from additional locations listed below in order, and fix installer issue where it would not set the vld.ini path in registry for x64 platform:\r\n - current directory\r\n - directory where VLDDLL resides\r\n - directory where executable resides\r\n - path specified in registry HKCU\r\n - path specified in registry HKLM\r\n- All other commits resolve compiler warnings and improvements to the code following PVS-Studio analysis.\r\n- Clean up of solutions and project files\r\n- Improvements and additions to test cases\r\n\r\nI tried to keep commits independed of each other as much as possible, to make review easier.\r\n\r\nI would suggest to cherypick as much as possible into master in order to rebase this PR and leave us with only the commits that need discussion.\r\n\r\nLink to [Appveyor Results](https://ci.appveyor.com/project/ioannis-e/vld/build/3) from my repository."},"comment":{"url":"https://api.github.com/repos/KindDragon/vld/issues/comments/145132739","html_url":"https://github.com/KindDragon/vld/pull/8#issuecomment-145132739","issue_url":"https://api.github.com/repos/KindDragon/vld/issues/8","id":145132739,"user":{"login":"KindDragon","id":224272,"avatar_url":"https://avatars.githubusercontent.com/u/224272?v=3","gravatar_id":"","url":"https://api.github.com/users/KindDragon","html_url":"https://github.com/KindDragon","followers_url":"https://api.github.com/users/KindDragon/followers","following_url":"https://api.github.com/users/KindDragon/following{/other_user}","gists_url":"https://api.github.com/users/KindDragon/gists{/gist_id}","starred_url":"https://api.github.com/users/KindDragon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KindDragon/subscriptions","organizations_url":"https://api.github.com/users/KindDragon/orgs","repos_url":"https://api.github.com/users/KindDragon/repos","events_url":"https://api.github.com/users/KindDragon/events{/privacy}","received_events_url":"https://api.github.com/users/KindDragon/received_events","type":"User","site_admin":false},"created_at":"2015-10-02T19:32:23Z","updated_at":"2015-10-02T19:32:23Z","body":"You can make changes in new commit and then rebase before we will merge this PR."}}