#include "dkcOSIndependent.h"#include "dkcSerialize.h"dkcStack.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

構成 | |
| struct | dkc_Stack |
型定義 | |
| typedef dkc_Stack | DKC_STACK |
関数 | |
| DKC_EXTERN DKC_STACK *WINAPI | dkcAllocStack (size_t numoff__, size_t offsetof__) |
| DKC_EXTERN int WINAPI | dkcFreeStack (DKC_STACK **ptr) |
| DKC_EXTERN void WINAPI | dkcStackPop (DKC_STACK *ptr) |
| DKC_EXTERN int WINAPI | dkcStackTop (DKC_STACK *ptr, void *) |
| DKC_EXTERN size_t WINAPI | dkcStackSize (DKC_STACK *ptr) |
| DKC_EXTERN BOOL WINAPI | dkcStackIsEmpty (DKC_STACK *ptr) |
| DKC_EXTERN int WINAPI | dkcStackPush (DKC_STACK *ptr, const void *) |
| DKC_EXTERN int WINAPI | dkcStackDynamicPush (DKC_STACK *ptr, const void *) |
| DKC_EXTERN void WINAPI | dkcStackClear (DKC_STACK *ptr) |
| DKC_EXTERN int WINAPI | dkcStackSerialize (const DKC_STACK *ptr, DKC_SERIALIZE *se) |
| DKC_EXTERN DKC_STACK *WINAPI | dkcAllocStackDeserialize (DKC_DESERIALIZE *se) |
|
|
||||||||||||
|
dkcStack.c の 12 行で定義されています。 参照先 DKC_STACK, dkcAllocate(), dkcFree(), dkc_Stack::mBuffer, dkc_Stack::mCount, dkc_Stack::mOffsetOf, dkc_Stack::mSize, と NULL. 参照元 dkcAllocStackDeserialize().
00012 {
00013 DKC_STACK *p;
00014 size_t size = numof__ * offsetof__;
00015 if(0==size) return NULL;
00016 p = dkcAllocate(sizeof(DKC_STACK));
00017 if(NULL==p) return NULL;
00018 p->mBuffer = dkcAllocate(size);
00019
00020 if(NULL==p->mBuffer) goto Error;
00021
00022 p->mCount = 0;
00023 p->mSize = size;
00024 p->mOffsetOf = offsetof__;
00025
00026 return p;
00027 Error:
00028 dkcFree(&p);
00029 return NULL;
00030 }
|
|
|
dkcStack.c の 155 行で定義されています。 参照先 DKC_DESERIALIZE, DKC_STACK, dkcAllocStack(), dkcDeserializeRead(), dkcmNOT_ASSERT, edkcSerializeIDStack, dkc_Stack::mBuffer, dkc_Stack::mCount, dkc_Stack::mOffsetOf, dkc_Stack::mSize, と NULL.
00156 {
00157 DKC_STACK *p;
00158 DKC_STACK t;
00159 size_t read;
00160 int id;
00161
00162 dkcDeserializeRead(se,&id,sizeof(id),&read);
00163 if(id != edkcSerializeIDStack)
00164 {
00165 return NULL;
00166 }
00167 dkcDeserializeRead(se,&t,sizeof(t),&read);
00168
00169 p = dkcAllocStack(t.mSize,t.mOffsetOf);
00170 if(NULL==p) return NULL;
00171
00172
00173 dkcDeserializeRead(se,p->mBuffer,p->mSize,&read);
00174 p->mCount = t.mCount;
00175 p->mOffsetOf = t.mOffsetOf;
00176
00177
00178 dkcmNOT_ASSERT(read != p->mSize);
00179
00180 return p;
00181 }
|
|
|
dkcStack.c の 32 行で定義されています。 参照先 DKC_STACK, dkcFree(), edk_ArgumentException, と NULL.
|
|
|
Stack内のカウンタを0に戻して、スタックを事実上クリアする。 dkcStack.c の 133 行で定義されています。 参照先 DKC_STACK, と dkc_Stack::mCount.
00133 {
00134 //memset(ptr->mBuffer,0,ptr->mSize);
00135 ptr->mCount = 0;
00136 }
|
|
||||||||||||
|
dkcStack.c の 99 行で定義されています。 参照先 BYTE, DKC_STACK, dkcReallocate(), dkcReallocateSizeFunction(), DKUTIL_FAILED, edk_FAILED, edk_SUCCEEDED, dkc_Stack::mBuffer, dkc_Stack::mCount, dkc_Stack::mOffsetOf, と dkc_Stack::mSize.
00100 {
00101 BYTE *tp;
00102 size_t point;
00103
00104 void *NewPtr;
00105 size_t want_size;
00106 //dkcmNOT_ASSERT(NULL==ptr);
00107
00108 point = ptr->mCount * ptr->mOffsetOf;
00109
00110 //もう限界判定
00111 if(ptr->mSize <= point ){
00112 //メモリ再確保
00113 want_size = dkcReallocateSizeFunction(ptr->mSize,ptr->mOffsetOf);
00114 if(DKUTIL_FAILED(
00115 dkcReallocate(&NewPtr,want_size,&ptr->mBuffer)
00116 )){
00117 return edk_FAILED;
00118 }
00119 ptr->mBuffer = NewPtr;
00120 ptr->mSize = want_size;
00121
00122 }
00123 tp = ptr->mBuffer;
00124
00125 memcpy(&tp[point],data,ptr->mOffsetOf);
00126
00127 ptr->mCount ++;
00128
00129 return edk_SUCCEEDED;
00130
00131
00132 }
|
|
|
dkcStack.c の 142 行で定義されています。 参照先 BOOL, DKC_STACK, と dkcStackSize().
00142 {
00143 return (dkcStackSize(ptr)==0);
00144 }
|
|
|
dkcStack.c の 40 行で定義されています。 参照先 DKC_STACK, dkcmNOT_ASSERT, と NULL.
00040 {
00041 dkcmNOT_ASSERT(NULL==ptr);
00042
00043 //もう無い判定
00044 if(ptr->mCount <= 0){
00045 return ;
00046 }
00047
00048 ptr->mCount --;
00049
00050 return;
00051 }
|
|
||||||||||||
|
\ dkcStack.c の 78 行で定義されています。 参照先 BYTE, DKC_STACK, dkcmNOT_ASSERT, edk_FAILED, edk_SUCCEEDED, と NULL.
00079 {
00080 BYTE *tp;
00081 size_t point;
00082 dkcmNOT_ASSERT(NULL==ptr);
00083
00084 point = ptr->mCount * ptr->mOffsetOf;
00085 //もう限界判定
00086 if(ptr->mSize <= point ){
00087 return edk_FAILED;
00088 }
00089 tp = ptr->mBuffer;
00090
00091 memcpy(&tp[point],data,ptr->mOffsetOf);
00092
00093 ptr->mCount ++;
00094
00095 return edk_SUCCEEDED;
00096
00097 }
|
|
||||||||||||
|
dkcStack.c の 146 行で定義されています。 参照先 DKC_SERIALIZE, DKC_STACK, dkcmNOT_ASSERT, dkcSerializeWrite(), edkcSerializeIDStack, と NULL.
00147 {
00148 int id = edkcSerializeIDStack;
00149 dkcmNOT_ASSERT(NULL==ptr);
00150 dkcSerializeWrite(se,&id,sizeof(id));
00151 dkcSerializeWrite(se,ptr,sizeof(DKC_STACK));
00152 return dkcSerializeWrite(se,ptr->mBuffer,ptr->mSize);
00153 }
|
|
|
dkcStack.c の 138 行で定義されています。 参照先 DKC_STACK, と dkc_Stack::mCount. 参照元 dkcStackIsEmpty().
00138 {
00139 return ptr->mCount;
00140 }
|
|
||||||||||||
|
dkcStack.c の 53 行で定義されています。 参照先 BYTE, DKC_STACK, dkcmNOT_ASSERT, edk_FAILED, edk_SUCCEEDED, と NULL.
00054 {
00055
00056 BYTE *tp;
00057 size_t point;
00058 dkcmNOT_ASSERT(NULL==ptr);
00059
00060 point = ptr->mOffsetOf * (ptr->mCount-1);//mCountの-1の所のアドレスに存在するデータだから・・・。
00061
00062 //もう無い判定
00063 if(ptr->mCount <= 0){
00064 return edk_FAILED;
00065 }
00066
00067
00068 tp = ptr->mBuffer;
00069
00070 memcpy(get_data,&tp[point],ptr->mOffsetOf);
00071
00072 //ptr->mCount --;
00073
00074 return edk_SUCCEEDED;
00075
00076 }
|
1.3.6