git

Форк
0
/
publicbasics.c 
66 строк · 1.3 Кб
1
/*
2
Copyright 2020 Google LLC
3

4
Use of this source code is governed by a BSD-style
5
license that can be found in the LICENSE file or at
6
https://developers.google.com/open-source/licenses/bsd
7
*/
8

9
#include "system.h"
10
#include "reftable-malloc.h"
11

12
#include "basics.h"
13

14
static void *(*reftable_malloc_ptr)(size_t sz);
15
static void *(*reftable_realloc_ptr)(void *, size_t);
16
static void (*reftable_free_ptr)(void *);
17

18
void *reftable_malloc(size_t sz)
19
{
20
	if (reftable_malloc_ptr)
21
		return (*reftable_malloc_ptr)(sz);
22
	return malloc(sz);
23
}
24

25
void *reftable_realloc(void *p, size_t sz)
26
{
27
	if (reftable_realloc_ptr)
28
		return (*reftable_realloc_ptr)(p, sz);
29
	return realloc(p, sz);
30
}
31

32
void reftable_free(void *p)
33
{
34
	if (reftable_free_ptr)
35
		reftable_free_ptr(p);
36
	else
37
		free(p);
38
}
39

40
void *reftable_calloc(size_t nelem, size_t elsize)
41
{
42
	size_t sz = st_mult(nelem, elsize);
43
	void *p = reftable_malloc(sz);
44
	memset(p, 0, sz);
45
	return p;
46
}
47

48
void reftable_set_alloc(void *(*malloc)(size_t),
49
			void *(*realloc)(void *, size_t), void (*free)(void *))
50
{
51
	reftable_malloc_ptr = malloc;
52
	reftable_realloc_ptr = realloc;
53
	reftable_free_ptr = free;
54
}
55

56
int hash_size(uint32_t id)
57
{
58
	switch (id) {
59
	case 0:
60
	case GIT_SHA1_FORMAT_ID:
61
		return GIT_SHA1_RAWSZ;
62
	case GIT_SHA256_FORMAT_ID:
63
		return GIT_SHA256_RAWSZ;
64
	}
65
	abort();
66
}
67

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.