Fixes error handling (SetLastError() and return value).
[wine/wine-kai.git] / dlls / imagehlp / internal.c
blob3d780b2cfbbdb06d60c813d88df09e21f16106ef
1 /*
2 * IMAGEHLP library
4 * Copyright 1998 Patrik Stridvall
5 */
7 #include "windows.h"
8 #include "winerror.h"
9 #include "wintypes.h"
10 #include "debug.h"
11 #include "imagehlp.h"
13 /***********************************************************************
14 * InitializeListHead32
16 VOID InitializeListHead32(PLIST_ENTRY32 pListHead)
18 pListHead->Flink = pListHead;
19 pListHead->Blink = pListHead;
22 /***********************************************************************
23 * InsertHeadList32
25 VOID InsertHeadList32(PLIST_ENTRY32 pListHead, PLIST_ENTRY32 pEntry)
27 pEntry->Blink = pListHead;
28 pEntry->Flink = pListHead->Flink;
29 pListHead->Flink = pEntry;
32 /***********************************************************************
33 * InsertTailList32
35 VOID InsertTailList32(PLIST_ENTRY32 pListHead, PLIST_ENTRY32 pEntry)
37 pEntry->Flink = pListHead;
38 pEntry->Blink = pListHead->Blink;
39 pListHead->Blink = pEntry;
42 /***********************************************************************
43 * IsListEmpty32
45 BOOLEAN IsListEmpty32(PLIST_ENTRY32 pListHead)
47 return !pListHead;
50 /***********************************************************************
51 * PopEntryList32
53 PSINGLE_LIST_ENTRY32 PopEntryList32(PSINGLE_LIST_ENTRY32 pListHead)
55 pListHead->Next = NULL;
56 return pListHead;
59 /***********************************************************************
60 * PushEntryList32
62 VOID PushEntryList32(
63 PSINGLE_LIST_ENTRY32 pListHead, PSINGLE_LIST_ENTRY32 pEntry)
65 pEntry->Next=pListHead;
68 /***********************************************************************
69 * RemoveEntryList32
71 VOID RemoveEntryList32(PLIST_ENTRY32 pEntry)
73 pEntry->Flink->Blink = pEntry->Blink;
74 pEntry->Blink->Flink = pEntry->Flink;
75 pEntry->Flink = NULL;
76 pEntry->Blink = NULL;
79 /***********************************************************************
80 * RemoveHeadList32
82 PLIST_ENTRY32 RemoveHeadList32(PLIST_ENTRY32 pListHead)
84 PLIST_ENTRY32 p = pListHead->Flink;
86 if(p != pListHead)
88 RemoveEntryList32(pListHead);
89 return p;
91 else
93 pListHead->Flink = NULL;
94 pListHead->Blink = NULL;
95 return NULL;
99 /***********************************************************************
100 * RemoveTailList32
102 PLIST_ENTRY32 RemoveTailList32(PLIST_ENTRY32 pListHead)
104 RemoveHeadList32(pListHead->Blink);
105 if(pListHead != pListHead->Blink)
106 return pListHead;
107 else
108 return NULL;