summaryrefslogtreecommitdiff
path: root/src/hash/hash_generic.h
Commit message (Collapse)AuthorAgeFilesLines
* hash: convert `global_init` macros to real functionPatrick Steinhardt2019-01-021-1/+5
| | | | | | | | | | | | | | | | | The `git_hash_global_init` function is simply defined as a macro to zero for most of the different hash implementations. This makes it impossible to treat it like a function pointer, which is required for a later commit where we want to improve the way global initialization works. Fix the issue by converting all no-op macros to an inline function returning zero. There's a small gotcha here, though: as most hash implementations only have a header file, but not a corresponding implementation file, we cannot declare the function as non-static. But declaring it as `static inline` fails, too, as there is a previous declaration as non-static. So we have to move the function declaration after the include that brings in the function definition, as it is allowed to have a non-static declaration after a static definition, but not the other way round.
* consistent header guardsethomson/header_guardsEdward Thomson2018-02-011-3/+3
| | | | use consistent names for the #include / #define header guard pattern.
* Make sure to always include "common.h" firstPatrick Steinhardt2017-07-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | Next to including several files, our "common.h" header also declares various macros which are then used throughout the project. As such, we have to make sure to always include this file first in all implementation files. Otherwise, we might encounter problems or even silent behavioural differences due to macros or defines not being defined as they should be. So in fact, our header and implementation files should make sure to always include "common.h" first. This commit does so by establishing a common include pattern. Header files inside of "src" will now always include "common.h" as its first other file, separated by a newline from all the other includes to make it stand out as special. There are two cases for the implementation files. If they do have a matching header file, they will always include this one first, leading to "common.h" being transitively included as first file. If they do not have a matching header file, they instead include "common.h" as first file themselves. This fixes the outlined problems and will become our standard practice for header and source files inside of the "src/" from now on.
* Add simple global shutdown hooksRussell Belfer2013-09-171-1/+0
| | | | | | | | | | Increasingly there are a number of components that want to do some cleanup at global shutdown time (at least if there are not going to be memory leaks). This creates a very simple system of shutdown hooks that will be invoked by git_threads_shutdown. Right now, the maximum number of hooks is hardcoded, but since adding a hook is not a public API, it should be fine and I thought it was better to start off with really simple code.
* Unify whitespaces to tabsLinquize2013-05-151-3/+3
|
* Revert "hash: remove git_hash_init from internal api"Michael Schubert2013-02-261-0/+1
| | | | | This reverts commit efe7fad6c96a3d6197a218aeaa561ec676794499, except for the indentation fixes.
* hash: remove git_hash_init from internal apiMichael Schubert2013-02-261-1/+0
| | | | Along with that, fix indentation in tests-clar/object/raw/hash.c
* update copyrightsEdward Thomson2013-01-081-1/+1
|
* unload dll / destroy hash ctxs at shutdownEdward Thomson2012-11-131-0/+1
|
* move hash library func ptrs to global globalEdward Thomson2012-11-131-0/+1
|
* Remove git_hash_ctx_new - callers now _ctx_init()Edward Thomson2012-11-131-0/+3
|
* Win32 CryptoAPI and CNG support for SHA1Edward Thomson2012-11-131-0/+19