source: trunk/libtransmission/ptrarray.h @ 4876

Last change on this file since 4876 was 4876, checked in by charles, 15 years ago

#667: remote crash exploit in bencode parser

  • Property svn:keywords set to Date Rev Author Id
File size: 1.8 KB
Line 
1/*
2 * This file Copyright (C) 2007-2008 Charles Kerr <charles@rebelbase.com>
3 *
4 * This file is licensed by the GPL version 2.  Works owned by the
5 * Transmission project are granted a special exemption to clause 2(b)
6 * so that the bulk of its code can remain under the MIT license.
7 * This exemption does not extend to derived works not owned by
8 * the Transmission project.
9 *
10 * $Id: ptrarray.h 4876 2008-01-31 02:24:43Z charles $
11 */
12
13#ifndef _TR_POINTERS_H_
14#define _TR_POINTERS_H_
15
16/**
17 * A simple pointer array that resizes itself dynamically.
18 */
19typedef struct tr_ptrArray tr_ptrArray;
20
21typedef void (*PtrArrayForeachFunc)(void *);
22
23tr_ptrArray * tr_ptrArrayNew     ( void );
24tr_ptrArray * tr_ptrArrayDup     ( tr_ptrArray* );
25void    tr_ptrArrayForeach       ( tr_ptrArray*, PtrArrayForeachFunc func );
26void    tr_ptrArrayFree          ( tr_ptrArray*, PtrArrayForeachFunc func );
27void*   tr_ptrArrayNth           ( tr_ptrArray*, int n );
28void*   tr_ptrArrayBack          ( tr_ptrArray* );
29void**  tr_ptrArrayPeek          ( tr_ptrArray*, int * size );
30void**  tr_ptrArrayBase          ( tr_ptrArray* );
31void    tr_ptrArrayClear         ( tr_ptrArray* );
32int     tr_ptrArrayInsert        ( tr_ptrArray*, void*, int pos );
33int     tr_ptrArrayAppend        ( tr_ptrArray*, void* );
34void*   tr_ptrArrayPop           ( tr_ptrArray* );
35void    tr_ptrArrayErase         ( tr_ptrArray*, int begin, int end );
36int     tr_ptrArraySize          ( const tr_ptrArray* );
37int     tr_ptrArrayEmpty         ( const tr_ptrArray* );
38int     tr_ptrArrayInsertSorted  ( tr_ptrArray*, void*,
39                                   int compare(const void*,const void*) );
40void*   tr_ptrArrayRemoveSorted  ( tr_ptrArray*, void*,
41                                   int compare(const void*,const void*) );
42void*   tr_ptrArrayFindSorted    ( tr_ptrArray*, const void*,
43                                   int compare(const void*,const void*) );
44
45#endif
Note: See TracBrowser for help on using the repository browser.