[Eos-document] [eos - ドキュメント作成] Re: 【仕様確認】mrcInitを使うときの条件

アーカイブの一覧に戻る

SourceForge Forum norep****@sourc*****
2014年 7月 7日 (月) 19:15:07 JST


このメールはSourceForge.JPのフォーラムからの自動転送です。
注意: このメールに返信しても単に無視されます。

フォーラムメッセージへの返信は以下のURLにアクセスしてください:
https://sourceforge.jp/projects/eos/forums/31695/35448/73766/

投稿者: Takuo Yasunaga (tacyas)

[メッセージ #73021 への返信]
> 【確認内容】
> mrcInit内にて無条件で__mrcAllocateを呼んでいます。mrc->Imageを
解放せずに読んだ場合は元データが残ってしまうのでしょ
うか。

そうですね。この場合は、残ってしまいます。
元々、Initの意味がそこにあったので、無条件になっていま
す。
解放したい場合には、mrcImageFreeで解放してから確認する必
要があります。
C++と異なり、constructorが無いために、初期化ができません。
変数が0であることが保証もされないので、難しいことに
なっています。

以上です。

 
> 【対応案】
> mrcInit使用上の注意として、事前にImageが空の確認・解放を
する旨をドキュメントに記載する。また、この関数を呼ん
でいる主要なAPI(mrcImageReadなど)についても注意事項に記載す
る。
> 
> ファイル名: /src/Objects/DataManip/mrcImage/src/mrcImageInit.c
> 関数名: mrcInit
> 	(48行目付近)
> mrcInit(mrcImage* mrc, char* filename)
> {
> 	DEBUGPRINT("in mrcInit\n");
>     /* Unless filename == NULL, File Header Read */
>     if(NULL!=filename) {
>         mrcHeaderRead(mrc, filename, "in mrcInit", 0);
>     } else {
> 	    mrcDefaultHeaderValueSetOnlyFixedValue(mrc);
> 		mrc->numTailer = 0;
> 	}
>     /* Label Number Check */
>     if(mrc->HeaderLabelN>MRC_MAX_LABEL_N) {
>         mrc->HeaderLabelN = 0L;
>     }
>    	mrcHiddenDataSet(mrc, 0); 
> 
>     __mrcAllocate(mrc, filename);
> 	
>     mrc->status = 0;
>     return 0;
> }
> 



______________________________________________________________________
Eos-Image Analysis Environment プロジェクトはフォーラムへの投稿をプロジェクトメンバーに
メール送信するように設定されています。
設定の詳細に関しては、プロジェクト管理者に確認してください。




Eos-document メーリングリストの案内
アーカイブの一覧に戻る