📄 cfuncinfoarr.cpp
字号:
// $Id: CFuncInfoArr.cpp,v 1.9 2002/10/29 17:47:00 Administrator Exp $
/*! @file
@brief アウトライン解析 データ配列
@author Norio Nakatani
@date 1998/06/23 作成
$Revision: 1.9 $
*/
/*
Copyright (C) 1998-2001, Norio Nakatani
This source code is designed for sakura editor.
Please contact the copyright holder to use this code for other purpose.
*/
#include <stdlib.h>
#include <malloc.h>
#include "CFuncInfoArr.h"
#include "debug.h"// 2002/2/10 aroka
/* CFuncInfoArrクラス構築 */
CFuncInfoArr::CFuncInfoArr()
{
m_nFuncInfoArrNum = 0; /* 配列要素数 */
m_ppcFuncInfoArr = NULL; /* 配列 */
return;
}
/* CFuncInfoArrクラス消滅 */
CFuncInfoArr::~CFuncInfoArr()
{
Empty();
return;
}
void CFuncInfoArr::Empty( void )
{
int i;
if( m_nFuncInfoArrNum > 0 && NULL != m_ppcFuncInfoArr ){
for( i = 0; i < m_nFuncInfoArrNum; ++i ){
delete m_ppcFuncInfoArr[i];
m_ppcFuncInfoArr[i] = NULL;
}
m_nFuncInfoArrNum = 0;
free( m_ppcFuncInfoArr );
m_ppcFuncInfoArr = NULL;
}
return;
}
/* 0<=の指定番号のデータを返す */
/* データがない場合はNULLを返す */
CFuncInfo* CFuncInfoArr::GetAt( int nIdx )
{
if( nIdx >= m_nFuncInfoArrNum ){
return NULL;
}
return m_ppcFuncInfoArr[nIdx];
}
/*! 配列の最後にデータを追加する */
void CFuncInfoArr::AppendData( CFuncInfo* pcFuncInfo )
{
if( 0 == m_nFuncInfoArrNum){
m_ppcFuncInfoArr = (CFuncInfo**)malloc( sizeof(CFuncInfo*) * (m_nFuncInfoArrNum + 1) );
}else{
m_ppcFuncInfoArr = (CFuncInfo**)realloc( m_ppcFuncInfoArr, sizeof(CFuncInfo*) * (m_nFuncInfoArrNum + 1) );
}
m_ppcFuncInfoArr[m_nFuncInfoArrNum] = pcFuncInfo;
m_nFuncInfoArrNum++;
return;
}
/*! 配列の最後にデータを追加する
@date 2002.04.01 YAZAKI 深さ導入
*/
void CFuncInfoArr::AppendData(
int nFuncLineCRLF, /* 関数のある行(CRLF単位) */
int nFuncLineLAYOUT,/* 関数のある行(折り返し単位) */
const char* pszFuncName, /* 関数名 */
int nInfo, /* 付加情報 */
int nDepth /* 深さ */
)
{
CFuncInfo* pcFuncInfo = new CFuncInfo( nFuncLineCRLF, nFuncLineLAYOUT, pszFuncName, nInfo );
pcFuncInfo->m_nDepth = nDepth;
AppendData( pcFuncInfo );
return;
}
void CFuncInfoArr::DUMP( void )
{
#ifdef _DEBUG
int i;
MYTRACE( "=============================\n" );
for( i = 0; i < m_nFuncInfoArrNum; i++ ){
MYTRACE( "[%d]------------------\n", i );
MYTRACE( "m_nFuncLineCRLF =%d\n", m_ppcFuncInfoArr[i]->m_nFuncLineCRLF );
MYTRACE( "m_nFuncLineLAYOUT =%d\n", m_ppcFuncInfoArr[i]->m_nFuncLineLAYOUT );
MYTRACE( "m_cmemFuncName =[%s]\n", m_ppcFuncInfoArr[i]->m_cmemFuncName.GetPtr() );
MYTRACE( "m_nInfo =%d\n", m_ppcFuncInfoArr[i]->m_nInfo );
}
MYTRACE( "=============================\n" );
#endif
}
/*[EOF]*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -