• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This library is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU Lesser General Public
4  * License as published by the Free Software Foundation; either
5  * version 2.1 of the License, or (at your option) any later version.
6  *
7  * This library is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
10  * Lesser General Public License for more details.
11  *
12  * You should have received a copy of the GNU Lesser General Public
13  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
14  */
15 
16 #include "config.h"
17 
18 /* we know we are deprecated here, no need for warnings */
19 #ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
20 #define GLIB_DISABLE_DEPRECATION_WARNINGS
21 #endif
22 
23 #include "gallocator.h"
24 
25 #include <glib/gmessages.h>
26 #include <glib/gslice.h>
27 
28 struct _GMemChunk {
29   guint alloc_size;           /* the size of an atom */
30 };
31 
32 GMemChunk*
g_mem_chunk_new(const gchar * name,gint atom_size,gsize area_size,gint type)33 g_mem_chunk_new (const gchar *name,
34                  gint         atom_size,
35                  gsize        area_size,
36                  gint         type)
37 {
38   GMemChunk *mem_chunk;
39 
40   g_return_val_if_fail (atom_size > 0, NULL);
41 
42   mem_chunk = g_slice_new (GMemChunk);
43   mem_chunk->alloc_size = atom_size;
44 
45   return mem_chunk;
46 }
47 
48 void
g_mem_chunk_destroy(GMemChunk * mem_chunk)49 g_mem_chunk_destroy (GMemChunk *mem_chunk)
50 {
51   g_return_if_fail (mem_chunk != NULL);
52 
53   g_slice_free (GMemChunk, mem_chunk);
54 }
55 
56 gpointer
g_mem_chunk_alloc(GMemChunk * mem_chunk)57 g_mem_chunk_alloc (GMemChunk *mem_chunk)
58 {
59   g_return_val_if_fail (mem_chunk != NULL, NULL);
60 
61   return g_slice_alloc (mem_chunk->alloc_size);
62 }
63 
64 gpointer
g_mem_chunk_alloc0(GMemChunk * mem_chunk)65 g_mem_chunk_alloc0 (GMemChunk *mem_chunk)
66 {
67   g_return_val_if_fail (mem_chunk != NULL, NULL);
68 
69   return g_slice_alloc0 (mem_chunk->alloc_size);
70 }
71 
72 void
g_mem_chunk_free(GMemChunk * mem_chunk,gpointer mem)73 g_mem_chunk_free (GMemChunk *mem_chunk,
74                   gpointer   mem)
75 {
76   g_return_if_fail (mem_chunk != NULL);
77 
78   g_slice_free1 (mem_chunk->alloc_size, mem);
79 }
80 
81 GAllocator*
g_allocator_new(const gchar * name,guint n_preallocs)82 g_allocator_new (const gchar *name,
83                  guint        n_preallocs)
84 {
85   /* some (broken) GAllocator uses depend on non-NULL allocators */
86   return (void *) 1;
87 }
88 
g_allocator_free(GAllocator * allocator)89 void g_allocator_free           (GAllocator *allocator) { }
90 
g_mem_chunk_clean(GMemChunk * mem_chunk)91 void g_mem_chunk_clean          (GMemChunk *mem_chunk)  { }
g_mem_chunk_reset(GMemChunk * mem_chunk)92 void g_mem_chunk_reset          (GMemChunk *mem_chunk)  { }
g_mem_chunk_print(GMemChunk * mem_chunk)93 void g_mem_chunk_print          (GMemChunk *mem_chunk)  { }
g_mem_chunk_info(void)94 void g_mem_chunk_info           (void)                  { }
g_blow_chunks(void)95 void g_blow_chunks              (void)                  { }
96 
g_list_push_allocator(GAllocator * allocator)97 void g_list_push_allocator      (GAllocator *allocator) { }
g_list_pop_allocator(void)98 void g_list_pop_allocator       (void)                  { }
99 
g_slist_push_allocator(GAllocator * allocator)100 void g_slist_push_allocator     (GAllocator *allocator) { }
g_slist_pop_allocator(void)101 void g_slist_pop_allocator      (void)                  { }
102 
g_node_push_allocator(GAllocator * allocator)103 void g_node_push_allocator      (GAllocator *allocator) { }
g_node_pop_allocator(void)104 void g_node_pop_allocator       (void)                  { }
105