このページを編集する際は、[[編集に関する方針]]に従ってください。 *概要 [#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 -- [[\'\");|]*{ <