[svn:parrot] r40563 - in branches/pmc_sans_unionval: include/parrot src/gc
whiteknight at svn.parrot.org
whiteknight at svn.parrot.org
Sat Aug 15 13:58:23 UTC 2009
Author: whiteknight
Date: Sat Aug 15 13:58:21 2009
New Revision: 40563
URL: https://trac.parrot.org/parrot/changeset/40563
Log:
[pmc_sans_unionval] some codestd fixes
Modified:
branches/pmc_sans_unionval/include/parrot/gc_api.h
branches/pmc_sans_unionval/src/gc/alloc_resources.c
branches/pmc_sans_unionval/src/gc/api.c
branches/pmc_sans_unionval/src/gc/gc_private.h
branches/pmc_sans_unionval/src/gc/mark_sweep.c
Modified: branches/pmc_sans_unionval/include/parrot/gc_api.h
==============================================================================
--- branches/pmc_sans_unionval/include/parrot/gc_api.h Sat Aug 15 13:15:44 2009 (r40562)
+++ branches/pmc_sans_unionval/include/parrot/gc_api.h Sat Aug 15 13:58:21 2009 (r40563)
@@ -232,9 +232,6 @@
void Parrot_gc_destroy_memory_pools(PARROT_INTERP)
__attribute__nonnull__(1);
-UINTVAL Parrot_gc_extended_pmcs(PARROT_INTERP)
- __attribute__nonnull__(1);
-
void Parrot_gc_finalize(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -416,8 +413,6 @@
#define ASSERT_ARGS_Parrot_gc_destroy_memory_pools \
__attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp)
-#define ASSERT_ARGS_Parrot_gc_extended_pmcs __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp)
#define ASSERT_ARGS_Parrot_gc_finalize __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp)
#define ASSERT_ARGS_Parrot_gc_free_bufferlike_header \
Modified: branches/pmc_sans_unionval/src/gc/alloc_resources.c
==============================================================================
--- branches/pmc_sans_unionval/src/gc/alloc_resources.c Sat Aug 15 13:15:44 2009 (r40562)
+++ branches/pmc_sans_unionval/src/gc/alloc_resources.c Sat Aug 15 13:58:21 2009 (r40563)
@@ -277,7 +277,7 @@
/*
-=item C<static void debug_print_buf(PARROT_INTERP, const PObj *b)>
+=item C<static void debug_print_buf(PARROT_INTERP, const Buffer *b)>
Prints a debug statement with information about the given PObj C<b>.
=cut
@@ -704,9 +704,8 @@
while (cur_block) {
Memory_Block * const next_block = cur_block->prev;
- if (cur_block->free == cur_block->size) {
+ if (cur_block->free == cur_block->size)
mem_internal_free(cur_block);
- }
else {
cur_block->next = NULL;
cur_block->prev = dest->top_block;
@@ -728,22 +727,6 @@
/*
-=back
-
-=head1 SEE ALSO
-
-F<src/gc/memory.c>.
-
-=head1 HISTORY
-
-Initial version by Dan on 2001.10.2.
-
-=cut
-
-*/
-
-/*
-
=item C<void check_memory_system(PARROT_INTERP)>
Checks the memory system of parrot on any corruptions, including
@@ -753,25 +736,25 @@
*/
-void
+static void
check_memory_system(PARROT_INTERP)
{
- size_t i;
- Arenas * const arena_base = interp->arena_base;
+ ASSERT_ARGS(check_memory_system
+ size_t i;
+ Arenas * const arena_base = interp->arena_base;
- check_memory_pool(arena_base->memory_pool);
- check_memory_pool(arena_base->constant_string_pool);
- check_small_object_pool(arena_base->pmc_pool);
- check_small_object_pool(arena_base->constant_pmc_pool);
- check_small_object_pool(arena_base->string_header_pool);
- check_small_object_pool(arena_base->constant_string_header_pool);
-
- for(i = 0;i < arena_base->num_sized;i++)
- {
- Small_Object_Pool * pool = arena_base->sized_header_pools[i];
- if(pool != NULL && pool != arena_base->string_header_pool)
- check_small_object_pool(pool);
- }
+ check_memory_pool(arena_base->memory_pool);
+ check_memory_pool(arena_base->constant_string_pool);
+ check_small_object_pool(arena_base->pmc_pool);
+ check_small_object_pool(arena_base->constant_pmc_pool);
+ check_small_object_pool(arena_base->string_header_pool);
+ check_small_object_pool(arena_base->constant_string_header_pool);
+
+ for (i = 0;i < arena_base->num_sized;i++) {
+ Small_Object_Pool * pool = arena_base->sized_header_pools[i];
+ if (pool != NULL && pool != arena_base->string_header_pool)
+ check_small_object_pool(pool);
+ }
}
/*
@@ -784,9 +767,10 @@
*/
-void
-check_small_object_pool(Small_Object_Pool * pool)
+static void
+check_small_object_pool(ARGMOD(Small_Object_Pool * pool))
{
+ ASSERT_ARGS(check_small_object_pool)
size_t total_objects;
size_t last_free_list_count;
Small_Object_Arena * arena_walker;
@@ -803,38 +787,31 @@
free_objects = 0;
arena_walker = pool->last_Arena;
- while(arena_walker != NULL)
- {
- total_objects -= arena_walker->total_objects;
- object = (PObj*)arena_walker->start_objects;
- for(i = 0;i < arena_walker->total_objects;++i)
- {
- if(PObj_on_free_list_TEST(object))
- {
- ++free_objects;
- pobj_walker = (GC_MS_PObj_Wrapper*)object;
- if(pobj_walker->next_ptr == NULL)
- {
- --last_free_list_count; //should happen only ones at the end
- }
- else
- { /*next item on free list should also be flaged as free item*/
- pobj_walker = (GC_MS_PObj_Wrapper*)pobj_walker->next_ptr;
- PARROT_ASSERT(PObj_on_free_list_TEST((PObj*)pobj_walker));
- }
- }
- else if(pool->mem_pool != NULL) /*then it means we are a buffer*/
- {
- check_buffer_ptr((Buffer*)object,pool->mem_pool);
- }
- object = (PObj*)((char *)object + pool->object_size);
- PARROT_ASSERT(--count);
- }
- /*check the list*/
- if(arena_walker->prev != NULL)
- {
- PARROT_ASSERT(arena_walker->prev->next == arena_walker);
- }
+ while (arena_walker != NULL) {
+ total_objects -= arena_walker->total_objects;
+ object = (PObj*)arena_walker->start_objects;
+ for (i = 0;i < arena_walker->total_objects;++i) {
+ if (PObj_on_free_list_TEST(object)) {
+ ++free_objects;
+ pobj_walker = (GC_MS_PObj_Wrapper*)object;
+ if (pobj_walker->next_ptr == NULL)
+ --last_free_list_count; //should happen only ones at the end
+ else {
+ /*next item on free list should also be flaged as free item*/
+ pobj_walker = (GC_MS_PObj_Wrapper*)pobj_walker->next_ptr;
+ PARROT_ASSERT(PObj_on_free_list_TEST((PObj*)pobj_walker));
+ }
+ }
+ else if (pool->mem_pool != NULL) {
+ /*then it means we are a buffer*/
+ check_buffer_ptr((Buffer*)object,pool->mem_pool);
+ }
+ object = (PObj*)((char *)object + pool->object_size);
+ PARROT_ASSERT(--count);
+ }
+ /*check the list*/
+ if (arena_walker->prev != NULL)
+ PARROT_ASSERT(arena_walker->prev->next == arena_walker);
arena_walker = arena_walker->prev;
PARROT_ASSERT(--count);
}
@@ -844,14 +821,13 @@
PARROT_ASSERT(free_objects == pool->num_free_objects);
pobj_walker = (GC_MS_PObj_Wrapper*)pool->free_list;
- while(pobj_walker != NULL)
- {
- PARROT_ASSERT(pool->start_arena_memory <= (size_t)pobj_walker);
- PARROT_ASSERT(pool->end_arena_memory > (size_t)pobj_walker);
- PARROT_ASSERT(PObj_on_free_list_TEST((PObj*)pobj_walker));
- --free_objects;
- pobj_walker = (GC_MS_PObj_Wrapper*)pobj_walker->next_ptr;
- PARROT_ASSERT(--count);
+ while (pobj_walker != NULL) {
+ PARROT_ASSERT(pool->start_arena_memory <= (size_t)pobj_walker);
+ PARROT_ASSERT(pool->end_arena_memory > (size_t)pobj_walker);
+ PARROT_ASSERT(PObj_on_free_list_TEST((PObj*)pobj_walker));
+ --free_objects;
+ pobj_walker = (GC_MS_PObj_Wrapper*)pobj_walker->next_ptr;
+ PARROT_ASSERT(--count);
}
PARROT_ASSERT(total_objects == 0);
@@ -869,27 +845,27 @@
*/
-void
-check_memory_pool(Memory_Pool *pool)
+static void
+check_memory_pool(ARGMOD(Memory_Pool *pool))
{
+ ASSERT_ARGS(check_memory_pool)
size_t count;
Memory_Block * block_walker;
count = 10000000; /*detect unendless loop just use big enough number*/
- block_walker = (Memory_Block *)pool->top_block;
- while(block_walker != NULL)
- {
- PARROT_ASSERT(block_walker->start == (char *)block_walker + sizeof (Memory_Block));
- PARROT_ASSERT((size_t)(block_walker->top - block_walker->start) == block_walker->size - block_walker->free);
+ block_walker = (Memory_Block *)pool->top_block;
+ while (block_walker != NULL) {
+ PARROT_ASSERT(block_walker->start == (char *)block_walker +
+ sizeof (Memory_Block));
+ PARROT_ASSERT((size_t)(block_walker->top -
+ block_walker->start) == block_walker->size - block_walker->free);
/*check the list*/
- if(block_walker->prev != NULL)
- {
- PARROT_ASSERT(block_walker->prev->next == block_walker);
- }
+ if (block_walker->prev != NULL)
+ PARROT_ASSERT(block_walker->prev->next == block_walker);
block_walker = block_walker->prev;
PARROT_ASSERT(--count);
- }
+ }
}
/*
@@ -910,31 +886,34 @@
bufstart = (char*)Buffer_bufstart(pobj);
- if(bufstart == NULL && Buffer_buflen(pobj) == 0)
+ if (bufstart == NULL && Buffer_buflen(pobj) == 0)
return;
- if(PObj_external_TEST(pobj) || PObj_sysmem_TEST(pobj)) /*buffer does not come from the memory pool*/
- {
- if (PObj_is_string_TEST(pobj))
- {
- PARROT_ASSERT(((STRING *) pobj)->strstart >= (char *) Buffer_bufstart(pobj));
- PARROT_ASSERT(((STRING *) pobj)->strstart + ((STRING *) pobj)->strlen <= (char *) Buffer_bufstart(pobj) + Buffer_buflen(pobj));
+ if (PObj_external_TEST(pobj) || PObj_sysmem_TEST(pobj)) {
+ /*buffer does not come from the memory pool*/
+ if (PObj_is_string_TEST(pobj)) {
+ PARROT_ASSERT(((STRING *) pobj)->strstart >=
+ (char *) Buffer_bufstart(pobj));
+ PARROT_ASSERT(((STRING *) pobj)->strstart +
+ ((STRING *) pobj)->strlen <=
+ (char *) Buffer_bufstart(pobj) + Buffer_buflen(pobj));
}
return;
}
- if(PObj_is_COWable_TEST(pobj))
+ if (PObj_is_COWable_TEST(pobj))
bufstart -= sizeof (void*);
- while (cur_block)
- {
+ while (cur_block) {
if ((char *)bufstart >= cur_block->start &&
- (char *)Buffer_bufstart(pobj) + Buffer_buflen(pobj) < cur_block->start + cur_block->size)
- {
- if (PObj_is_string_TEST(pobj))
- {
- PARROT_ASSERT(((STRING *)pobj)->strstart >= (char *)Buffer_bufstart(pobj));
- PARROT_ASSERT(((STRING *)pobj)->strstart + ((STRING *)pobj)->strlen <= (char *)Buffer_bufstart(pobj) + Buffer_buflen(pobj));
+ (char *)Buffer_bufstart(pobj) +
+ Buffer_buflen(pobj) < cur_block->start + cur_block->size) {
+ if (PObj_is_string_TEST(pobj)) {
+ PARROT_ASSERT(((STRING *)pobj)->strstart >=
+ (char *)Buffer_bufstart(pobj));
+ PARROT_ASSERT(((STRING *)pobj)->strstart +
+ ((STRING *)pobj)->strlen <= (char *)Buffer_bufstart(pobj) +
+ Buffer_buflen(pobj));
}
return;
}
@@ -944,6 +923,22 @@
}
/*
+
+=back
+
+=head1 SEE ALSO
+
+F<src/gc/memory.c>.
+
+=head1 HISTORY
+
+Initial version by Dan on 2001.10.2.
+
+=cut
+
+*/
+
+/*
* Local variables:
* c-file-style: "parrot"
* End:
Modified: branches/pmc_sans_unionval/src/gc/api.c
==============================================================================
--- branches/pmc_sans_unionval/src/gc/api.c Sat Aug 15 13:15:44 2009 (r40562)
+++ branches/pmc_sans_unionval/src/gc/api.c Sat Aug 15 13:58:21 2009 (r40563)
@@ -579,7 +579,7 @@
/*
-=item C<void Parrot_gc_free_bufferlike_header(PARROT_INTERP, PObj *obj, size_t
+=item C<void Parrot_gc_free_bufferlike_header(PARROT_INTERP, Buffer *obj, size_t
size)>
Free a bufferlike header that is not being used, so that Parrot can recycle
Modified: branches/pmc_sans_unionval/src/gc/gc_private.h
==============================================================================
--- branches/pmc_sans_unionval/src/gc/gc_private.h Sat Aug 15 13:15:44 2009 (r40562)
+++ branches/pmc_sans_unionval/src/gc/gc_private.h Sat Aug 15 13:58:21 2009 (r40563)
@@ -528,6 +528,12 @@
PARROT_WARN_UNUSED_RESULT
size_t aligned_string_size(size_t len);
+void check_buffer_ptr(Buffer * pobj, Memory_Pool * pool);
+void check_memory_pool(Memory_Pool *pool);
+void check_memory_system(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+void check_small_object_pool(Small_Object_Pool * pool);
void compact_pool(PARROT_INTERP, ARGMOD(Memory_Pool *pool))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -548,31 +554,18 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*dest)
FUNC_MODIFIES(*source);
-
-void check_memory_system(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-void check_memory_system(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-void check_small_object_pool(Small_Object_Pool * pool)
- __attribute__nonnull__(1);
-void
-check_memory_pool(Memory_Pool *pool)
- __attribute__nonnull__(1);
-
-void
-check_buffer_ptr(Buffer * pobj,Memory_Pool * pool)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
#define ASSERT_ARGS_aligned_mem __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(buffer) \
|| PARROT_ASSERT_ARG(mem)
#define ASSERT_ARGS_aligned_size __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(buffer)
#define ASSERT_ARGS_aligned_string_size __attribute__unused__ int _ASSERT_ARGS_CHECK = 0
+#define ASSERT_ARGS_check_buffer_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = 0
+#define ASSERT_ARGS_check_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = 0
+#define ASSERT_ARGS_check_memory_system __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp)
+#define ASSERT_ARGS_check_small_object_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = 0
#define ASSERT_ARGS_compact_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp) \
|| PARROT_ASSERT_ARG(pool)
Modified: branches/pmc_sans_unionval/src/gc/mark_sweep.c
==============================================================================
--- branches/pmc_sans_unionval/src/gc/mark_sweep.c Sat Aug 15 13:15:44 2009 (r40562)
+++ branches/pmc_sans_unionval/src/gc/mark_sweep.c Sat Aug 15 13:58:21 2009 (r40563)
@@ -902,7 +902,7 @@
/*
=item C<static void free_buffer_malloc(PARROT_INTERP, Small_Object_Pool *pool,
-PObj *b)>
+Buffer *b)>
Frees the given buffer, returning the storage space to the operating system
and removing it from Parrot's memory management system. If the buffer is COW,
@@ -937,7 +937,7 @@
/*
-=item C<static void free_buffer(PARROT_INTERP, Small_Object_Pool *pool, PObj
+=item C<static void free_buffer(PARROT_INTERP, Small_Object_Pool *pool, Buffer
*b)>
Frees a buffer, returning it to the memory pool for Parrot to possibly
More information about the parrot-commits
mailing list