このページを編集する際は、[[編集に関する方針]]に従ってください。
*概要 [#ea6285a5]
-対象:8.1.4
-言語:C
-宣言:[[postgresql-8.1.4/src/include/utils/palloc.h]]
-%%引数 context 配下の関数ポインタ context->methods->alloc で指定されている関数をコールして、戻り値を返す。%%
--引数sizeが[[MaxAllocSize/postgresql-8.1.4]]より大きければ、[[elog()/postgresql-8.1.4]]を再帰呼び出しする。
--(USE_ASSERT_CHECKINGを指定したバイナリの場合)assert_enabledが0以外、かつ、
ポインタcontextを構造体[[Node/postgresql-8.1.4]]型のポインタにキャストしたときにtypeメンバに相当する値がT_AllocSetContextでない時、エラー情報を出力してプログラムを停止する。
*引数 [#o61bd256]
-MemoryContext context -- 以下のように使用される。
--構造体[[Node/postgresql-8.1.4]]型のポインタにキャストして、typeメンバに相当する値を評価
--関数ポインタ context->methods->alloc で示される関数を呼び出し
--上記関数の引数
-Size size -- 関数ポインタ context->methods->alloc で指定されている関数に与える引数。
*実装 [#u2d5b113]
void *
MemoryContextAlloc(MemoryContext context, Size size)
-[[MemoryContext/postgresql-8.1.4]] -- 下記メンバを持つ構造体MemoryContextDataへのポインタ型。
--NodeTag列挙型の変数type
--下記メンバを持つ構造体型MemoryContextMethodsへのポインタmethods
---void*型の関数ポインタalloc
---void型の関数ポインタfree_p
---void*型の関数ポインタrealloc
---void型の関数ポインタinit
---void型の関数ポインタreset
---void型の関数ポインタdelete
---Size型の関数ポインタget_chunk_space
---bool型の関数ポインタis_empty
---void型の関数ポインタstats
---void型の関数ポインタcheck
--MemoryContextDataへのポインタparent(再帰的使用)
--MemoryContextDataへのポインタfirstchild(再帰的使用)
--MemoryContextDataへのポインタnextchild(再帰的使用)
--char型へのポインタname
-[[Size/postgresql-8.1.4]] -- size_tの別名
{
AssertArg(MemoryContextIsValid(context));
-[[AssertArg()/postgresql-8.1.4]] -- (USE_ASSERT_CHECKINGを指定したバイナリの場合)assert_enabledが0以外、かつ、評価式MemoryContextIsValid(context)の結果が0である時、エラー情報を出力してプログラムを停止する。
-[[MemoryContextIsValid()/postgresql-8.1.4]] -- ポインタcontextを構造体[[Node/postgresql-8.1.4]]型のポインタにキャストしたときにtypeメンバに相当する値が、T_AllocSetContextであるかどうか判別する。
if (!AllocSizeIsValid(size))
-[[AllocSizeIsValid()/postgresql-8.1.4]] -- 引数sizeが[[MaxAllocSize/postgresql-8.1.4]]以下であるかどうかを返す。
elog(ERROR, "invalid memory alloc request size %lu",
(unsigned long) size);
-[[elog()/postgresql-8.1.4]] -- (再帰呼び出しになっている)
return (*context->methods->alloc) (context, size);
-%%関数ポインタ context->methods->alloc で指定されている関数をコールして、戻り値を返す。%%
}
*呼出元 [#r8d8b4fd]
-[[palloc()/postgresql-8.1.4]]
*備考 [#v30b7e0b]
/*
* Fundamental memory-allocation operations (more are in utils/memutils.h)
*/
/*
* MemoryContextAlloc
* Allocate space within the specified context.
*
* This could be turned into a macro, but we'd have to import
* nodes/memnodes.h into postgres.h which seems a bad idea.
*/
*履歴 [#p50618ff]
-作者:[[testnoda/ページ作者]]
-日付:2007/4/24
|更新日|更新者|更新内容|
|2007/4/24|[[testnoda/ページ作者]]|解読を一旦中止([[関数ポインタ①/解読日記]]を参照)|
||||
*コメント [#h49e3c96]
- W1Jysg http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com -- [[Barnypok]] &new{2017-01-02 (月) 17:36:12};
- DAR9qN http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com -- [[chaba]] &new{2017-01-30 (月) 00:20:15};
- BDb7UA http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com -- [[matt]] &new{2017-01-30 (月) 00:22:56};
- w6FC1Y http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com -- [[gordon]] &new{2017-02-01 (水) 02:39:30};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:19};
- ' -- &new{2018-09-06 (木) 09:43:19};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:25};
- ,00 -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:26};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:26};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:26};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:26};
- w3bSc9n -- [[,00]] &new{2018-09-06 (木) 09:43:26};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:26};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:27};
- %u0027 -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:35};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:35};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:35};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:35};
- w3bSc9n -- [[%u0027]] &new{2018-09-06 (木) 09:43:36};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:36};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:36};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:36};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:36};
- c:\ -- &new{2018-09-06 (木) 09:43:38};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:43};
- ' -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:43};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:44};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:45};
- w3bSc9n -- [[ ']] &new{2018-09-06 (木) 09:43:45};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:45};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:45};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:46};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:46};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:47};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:43:47};
- http://www.google.com -- &new{2018-09-06 (木) 09:43:53};
- wsng;SELECT SLEEP(5);-- -- &new{2018-09-06 (木) 09:44:02};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:18};
- ) -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:18};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:19};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:19};
- w3bSc9n -- [[)]] &new{2018-09-06 (木) 09:44:20};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:20};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:21};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:28};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:29};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:29};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:29};
- htTps://www.google.com -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:30};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:30};
- c:\Windows\Win.ini -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:30};
- w3bSc9n -- [[c:\Windows\Win.ini]] &new{2018-09-06 (木) 09:44:31};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:32};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:32};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:36};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:37};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:37};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:41};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:41};
- w3bSc9n -- [[htTps://www.google.com]] &new{2018-09-06 (木) 09:44:41};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:50};
- \" -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:53};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:56};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:44:57};
- w3bSc9n -- [[\"]] &new{2018-09-06 (木) 09:44:59};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:00};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:28};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:30};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:36};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:36};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:36};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:37};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:37};
- www.google.com -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:37};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:37};
- c:\boot.ini -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:38};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:38};
- w3bSc9n -- [[c:\boot.ini]] &new{2018-09-06 (木) 09:45:38};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:38};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:38};
- w3bSc9n -- [[www.google.com]] &new{2018-09-06 (木) 09:45:39};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:41};
- [ -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:41};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:41};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:41};
- w3bSc9n -- [[[]] &new{2018-09-06 (木) 09:45:41};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:41};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:41};
- |echo $((99333685+99333685))||a -- &new{2018-09-06 (木) 09:45:42};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:42};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:43};
- 268435455 -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:45};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:45};
- w3bSc9n -- [[268435455]] &new{2018-09-06 (木) 09:45:45};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:45};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:45};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:46};
- htTp://www.google.com -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:46};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:46};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:46};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:46};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:47};
- w3bSc9n -- [[ | Dir c:\]] &new{2018-09-06 (木) 09:45:47};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:49};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:49};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:49};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:49};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:50};
- 814497708 -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:50};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:50};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:50};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:50};
-- 268435455 -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:53};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:53};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:53};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:53};
- w3bSc9n -- [[\']] &new{2018-09-06 (木) 09:45:53};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:53};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:54};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:55};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:55};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:55};
- '684703943 -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:55};
- w3bSc9n -- [['233486298]] &new{2018-09-06 (木) 09:45:55};
- w3bSc9n -- [[w3bSc9n]] &new{2018-09-06 (木) 09:45:55};
- w3bSc9n -- [[\'\");|]*{
<