summaryrefslogtreecommitdiff
path: root/libfreetype/ftexcept.c
diff options
context:
space:
mode:
Diffstat (limited to 'libfreetype/ftexcept.c')
-rw-r--r--libfreetype/ftexcept.c197
1 files changed, 0 insertions, 197 deletions
diff --git a/libfreetype/ftexcept.c b/libfreetype/ftexcept.c
deleted file mode 100644
index 1b93a997..00000000
--- a/libfreetype/ftexcept.c
+++ /dev/null
@@ -1,197 +0,0 @@
-#include <ft2build.h>
-#include FT_EXCEPT_H
-
-
- FT_BASE_DEF( void )
- ft_cleanup_stack_init( FT_CleanupStack stack,
- FT_Memory memory )
- {
- stack->chunk = &stack->chunk_0;
- stack->top = stack->chunk->items;
- stack->limit = stack->top + FT_CLEANUP_CHUNK_SIZE;
- stack->chunk_0.link = NULL;
-
- stack->memory = memory;
- }
-
-
-
- FT_BASE_DEF( void )
- ft_cleanup_stack_done( FT_CleanupStack stack )
- {
- FT_Memory memory = stack->memory;
- FT_CleanupChunk chunk, next;
-
- for (;;)
- {
- chunk = stack->chunk;
- if ( chunk == &stack->chunk_0 )
- break;
-
- stack->chunk = chunk->link;
-
- FT_Free( chunk, memory );
- }
-
- stack->memory = NULL;
- }
-
-
-
- FT_BASE_DEF( void )
- ft_cleanup_stack_push( FT_CleanupStack stack,
- FT_Pointer item,
- FT_CleanupFunc item_func,
- FT_Pointer item_data )
- {
- FT_CleanupItem top;
-
-
- FT_ASSERT( stack && stack->chunk && stack->top );
- FT_ASSERT( item && item_func );
-
- top = stack->top;
-
- top->item = item;
- top->item_func = item_func;
- top->item_data = item_data;
-
- top ++;
-
- if ( top == stack->limit )
- {
- FT_CleanupChunk chunk;
-
- chunk = FT_QAlloc( sizeof(*chunk), stack->memory );
-
- chunk->link = stack->chunk;
- stack->chunk = chunk;
- stack->limit = chunk->items + FT_CLEANUP_CHUNK_SIZE;
- top = chunk->items;
- }
-
- stack->top = top;
- }
-
-
-
- FT_BASE_DEF( void )
- ft_cleanup_stack_pop( FT_CleanupStack stack,
- FT_Int destroy )
- {
- FT_CleanupItem top;
-
-
- FT_ASSERT( stack && stack->chunk && stack->top );
- top = stack->top;
-
- if ( top == stack->chunk->items )
- {
- FT_CleanupChunk chunk;
-
- chunk = stack->chunk;
-
- if ( chunk == &stack->chunk_0 )
- {
- FT_ERROR(( "cleanup.pop: empty cleanup stack !!\n" ));
- ft_cleanup_throw( stack, FT_Err_EmptyCleanupStack );
- }
-
- chunk = chunk->link;
- FT_QFree( stack->chunk, stack->memory );
-
- stack->chunk = chunk;
- stack->limit = chunk->items + FT_CLEANUP_CHUNK_SIZE;
- top = stack->limit;
- }
-
- top --;
-
- if ( destroy )
- top->item_func( top->item, top->item_data );
-
- top->item = NULL;
- top->item_func = NULL;
- top->item_data = NULL;
-
- stack->top = top;
- }
-
-
-
- FT_BASE_DEF( FT_CleanupItem )
- ft_cleanup_stack_peek( FT_CleanupStack stack )
- {
- FT_CleanupItem top;
- FT_CleanupChunk chunk;
-
-
- FT_ASSERT( stack && stack->chunk && stack->top );
-
- top = stack->top;
- chunk = stack->chunk;
-
- if ( top > chunk->items )
- top--;
- else
- {
- chunk = chunk->link;
- top = NULL;
- if ( chunk != NULL )
- top = chunk->items + FT_CLEANUP_CHUNK_SIZE - 1;
- }
- return top;
- }
-
-
-
- FT_BASE_DEF( void )
- ft_xhandler_enter( FT_XHandler xhandler,
- FT_Memory memory )
- {
- FT_CleanupStack stack = FT_MEMORY__CLEANUP(memory);
-
- xhandler->previous = stack->xhandler;
- xhandler->cleanup = stack->top;
- xhandler->error = 0;
- stack->xhandler = xhandler;
- }
-
-
-
- FT_BASE_DEF( void )
- ft_xhandler_exit( FT_XHandler xhandler )
- {
- FT_CleanupStack stack = FT_MEMORY__CLEANUP(memory);
-
- stack->xhandler = xhandler->previous;
- xhandler->previous = NULL;
- xhandler->error = error;
- xhandler->cleanup = NULL;
- }
-
-
-
- FT_BASE_DEF( void )
- ft_cleanup_throw( FT_CleanupStack stack,
- FT_Error error )
- {
- FT_XHandler xhandler = stack->xhandler;
-
- if ( xhandler == NULL )
- {
- /* no exception handler was registered. this */
- /* means that we have an un-handled exception */
- /* the only thing we can do is _PANIC_ and */
- /* halt the current program.. */
- /* */
- FT_ERROR(( "FREETYPE PANIC: An un-handled exception occured. Program aborted" ));
- ft_exit(1);
- }
-
- /* cleanup the stack until we reach the handler's */
- /* starting stack location.. */
-
- xhandler->error = error;
- longmp( xhandler->jump_buffer, 1 );
- } \ No newline at end of file