亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jdd_memapi.c.svn-base

?? gif to bmp conversion
?? SVN-BASE
字號:
#define MODULE_NAME						"jdd"
#define FILE_NAME						"jdd_memapi.c"
/***************************************************************************
*
* File Name : jdd_memapi.c
*
* IMPORTANT NOTICE
*
* Please note that any and all title and/or intellectual property rights 
* in and to this Software or any part of this (including without limitation 
* any images, photographs, animations, video, audio, music, text and/or 
* "applets," incorporated into the Software), herein mentioned to as 
* "Software", the accompanying printed materials, and any copies of the 
* Software, are owned by Jataayu Software (P) Ltd., Bangalore ("Jataayu") 
* or Jataayu's suppliers as the case may be. The Software is protected by 
* copyright, including without limitation by applicable copyright laws, 
* international treaty provisions, other intellectual property laws and 
* applicable laws in the country in which the Software is being used. 
* You shall not modify, adapt or translate the Software, without prior 
* express written consent from Jataayu. You shall not reverse engineer, 
* decompile, disassemble or otherwise alter the Software, except and 
* only to the extent that such activity is expressly permitted by 
* applicable law notwithstanding this limitation. Unauthorized reproduction 
* or redistribution of this program or any portion of it may result in severe 
* civil and criminal penalties and will be prosecuted to the maximum extent 
* possible under the law. Jataayu reserves all rights not expressly granted. 
* 
* THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND 
* AND ANY AND ALL REPRESENTATION 
*
***************************************************************************
*
*
* File Description
* ----------------
*
* Purpose			: This file contains all the memory management API calls
*						for Win32 platform.
*
*
* 
* Created By		: V. Grace Piradhiba
* Created Date		: 10 May 2004
*
* Current Revision	:
*
*
***************************************************************************
*
*
* Revision Details
* ----------------
* 
* 1. Modified By, Modified Date, Purpose
* Modified By		: V. Grace Piradhiba
* Modified Date		: 18 May 2004
* Purpose			: jc_memalloc changed to jdd_memalloc
*					  jc_memfree changed to jdd_memfree
*					  jdd_TimerApi.h also modified to reflect this change.
*
*
* 2. Modified By, Modified Date, Purpose
* 3. Modified By, Modified Date, Purpose
*
*
*
***************************************************************************/


/***************************************************************************
* System Include Files
**************************************************************************/



/***************************************************************************
* User Include Files
**************************************************************************/
# include <ddl.h>

#ifdef JDD_LOG_ENABLED
#define __MODULE_ID__					OTHER_MODULE
#else
#define __MODULE_ID__					0
#endif

# include <jcalnet.h>

#ifndef _ENABLE_MEM_CONSUMPTION
/***************************************************************************
* Type Definitions
**************************************************************************/

#define	MEM_LOG_FILE	TEXT ("C:\\temp\\alloc.log")

/***************************************************************************
* Macros
**************************************************************************/


/***************************************************************************
* Global Variable declarations and definitions
**************************************************************************/
HANDLE ghFile = NULL ;

/***************************************************************************
* Local Function Prototypes
**************************************************************************/
#ifndef MEM_USE_SYSTEMCALL
static void * memalloc (JC_UINT32 items , JC_UINT32 size) ;
static void memfree (void *ptr) ;
#endif

#ifdef MEM_LOG_ENABLED
	static JC_INT32 add_to_alloc_log (const JC_INT8 *fname, JC_INT32 line, JC_UINT32 size, JC_UINT32 len) ;
	static JC_INT32 add_to_free_log (const JC_INT8 *fname, JC_INT32 line, JC_INT32 *pi) ;
#endif


/***************************************************************************
* All Local Function Definitions
**************************************************************************/

JC_RETCODE jdd_MemInit (void)
{
#ifdef MEM_LOG_ENABLED
	init_alloc_log () ;
#endif
	return JC_OK ;
}


JC_RETCODE jdd_MemDeinit (void)
{
#ifdef MEM_LOG_ENABLED
	close_alloc_log () ;
#endif
	return JC_OK ;
}


#ifdef MEM_LOG_ENABLED

static JC_INT32 g_allocid = 1;
static JC_INT32 gTotalAlloc = 0;
static FILE *gAllocLog = NULL ;
static FILE *gMemLog = NULL ;
static JC_INT32 add_to_alloc_log (const JC_INT8 *fname, JC_INT32 line, JC_UINT32 size, JC_UINT32 len) ;
static JC_INT32 add_to_free_log (const JC_INT8 *fname, JC_INT32 line, JC_INT32 *pi) ;
static JC_INT32 alloc_failure (const JC_INT8 *fname, JC_INT32 line, JC_UINT32 size) ;
static JC_INT32 free_overrun (const JC_INT8 *fname, JC_INT32 line, JC_UINT32 size) ;

void * jdd_MemDebugAlloc (const JC_INT8 *fname, JC_INT32 line, JC_UINT32 size, JC_UINT32 len)
{
	void *p ;
	JC_INT32 *pi ;

	p = memalloc (1, len * size + 8 + 4) ; //arun 0107. 32 bytes overrun-detect zone.
	if (!p) 
	{
		alloc_failure (fname, line, len*size);
		return p;
	}
	add_to_alloc_log (fname, line, size, len) ;
	pi = (JC_INT32 *) p ;
	*pi = g_allocid ;
	*(pi + 1) = len * size ;
	g_allocid++ ;

	jc_memset ((JC_INT8 *)p + 8 + len*size, '~', 4) ; // arun 0107 fill OD zone with a5
	gTotalAlloc += (len * size) ;
	/*
	if (gAllocLog)
		fprintf (gAllocLog, "A@ %u\n", pi + 2) ;
	*/
	return pi + 2 ;
}


void jdd_MemDebugFree (const JC_INT8 *fname, JC_INT32 line, void *p)
{
	JC_INT32 *pi ;
	JC_INT32 i, size ;

	if (p == NULL)
	{
		return ;
	}
	pi = (JC_INT32 *)p ;
	size = *(pi - 1) ;

	add_to_free_log (fname, line, pi) ;

	for (i = 0; i < 4; i++) 
	{
		if (*((JC_INT8 *) p + size + i) != '~') 
		{
			free_overrun(fname, line, size);
		}
	}
	gTotalAlloc -= (size);
	memfree (pi - 2) ;
}


void* jdd_MemDebugRealloc (const JC_INT8 *fname, JC_INT32 line, void *p, JC_UINT32 uiSize) 
{
	JC_INT32 *pi ;
	JC_INT32 i, iPrevSize ;
	void *pNewPtr ;

	if (p != NULL)
	{
		pi = (JC_INT32 *)p ;
		iPrevSize = *(pi - 1) ;

		add_to_free_log (fname, line, pi) ;

		for (i = 0; i < 4; i++) 
		{
			if (*((JC_INT8 *) p + iPrevSize + i) != '~') 
			{
				free_overrun(fname, line, iPrevSize);
			}
		}
		pNewPtr = jdd_MemDebugAlloc (fname, line, 1, uiSize) ;
		if (pNewPtr != NULL)
		{
			memcpy (pNewPtr, p, iPrevSize) ;
		}
		gTotalAlloc -= (iPrevSize) ;
		memfree (pi - 2) ;
	}
	else
	{
		pNewPtr = jdd_MemDebugAlloc (fname, line, 1, uiSize) ;
	}
	return pNewPtr ;
}


JC_INT32 init_alloc_log () 
{
	if (gAllocLog == NULL)
	{
		gAllocLog = fopen ("c:\\temp\\alloc.log", "w") ;
		if (gAllocLog == NULL)
		{
			return 0 ;
		}
		return 1 ;
	}
	return 0 ;
}

JC_INT32 close_alloc_log ()
{
	if (gAllocLog)
	{
		fclose (gAllocLog) ;
		gAllocLog = NULL ;
	}
	return 0 ;
}

JC_INT32 get_total_alloc ()
{
	return gTotalAlloc ;
}

#ifdef _MEM_CHECK_

JC_INT32 add_buflen_allocid_to_log (const JC_INT8 *fname, JC_INT8 *pcUrl, JC_UINT32 uiBufLen)//Added on 13th Jan by Sriram
{
	gMemLog = fopen ("c:\\temp\\mem.log", "a") ;
	if (NULL == gMemLog)
	{
		return 0 ;
	}
	fprintf (gMemLog, "BM@ %s %s BufLen: %d InitId: %d ", fname, pcUrl, uiBufLen, g_allocid) ;
	fclose (gMemLog) ;
	gMemLog = NULL ;
	return 1 ;
}

JC_INT32 add_to_mem_log (const JC_INT8 *fname, JC_INT32 line, JC_INT8 *funcName, JC_INT32 initialMemVal, JC_INT32 finalMemVal, JC_UINT32 uiTotalControls)
{
	gMemLog = fopen ("c:\\temp\\mem.log", "a") ;
	if (gMemLog)
		fprintf (gMemLog, "M@ %s:%d  Function:%s Init:%d Final:%d Total:%d Finalid:%d TotalControls:%d \n\n", fname, line, funcName, initialMemVal, finalMemVal, (finalMemVal - initialMemVal), g_allocid, uiTotalControls) ;
	fclose (gMemLog) ;
	gMemLog = NULL ;
	return 0 ;
}

#endif

static JC_INT32 add_to_alloc_log (const JC_INT8 *fname, JC_INT32 line, JC_UINT32 size, JC_UINT32 len)
{
	if (gAllocLog)
		fprintf (gAllocLog, "A@ %s:%d, id:%d, size:%d TA[%05ld]\n", fname, line, g_allocid, len*size, gTotalAlloc);
	return 0 ;
}


static JC_INT32 add_to_free_log (const JC_INT8 *fname, JC_INT32 line, JC_INT32 *pi)
{
	if (gAllocLog)
		fprintf (gAllocLog, "F@ %s:%d, id:%d, size:%d FTA[%ld]\n", fname, line, *(pi-2), *(pi-1), gTotalAlloc) ;
	//fprintf (gAllocLog, "F@ %s:%d, id:%d, size:%d %p FTA[%ld]\n", fname, line, *(pi-2), *(pi-1), pi-2, gTotalAlloc);
	return 0 ;
}


static JC_INT32 alloc_failure (const JC_INT8 *fname, JC_INT32 line, JC_UINT32 size)
{
	if (gAllocLog)
		fprintf (gAllocLog, "MAF in %s:%d[%d]\n", fname, line, size);
	return 0 ;
}


static JC_INT32 free_overrun (const JC_INT8 *fname, JC_INT32 line, JC_UINT32 size)
{
	if (gAllocLog)
		fprintf (gAllocLog, "OD in %s:%d[%d]\n", fname, line, size);
	return 0 ;
}

#else
#ifndef MEM_USE_SYSTEMCALL

void *jdd_MemAlloc (JC_UINT32 uiItemSize, JC_UINT32 uiItems)
{
	if ((0 == uiItemSize) || (0 == uiItems))
	{
		return NULL ;
	}
	return memalloc (uiItemSize, uiItems) ;
}


void jdd_MemFree (void *pFreeMemAddress)
{
	if (NULL == pFreeMemAddress)
	{
		return ;
	}
	memfree (pFreeMemAddress) ;
	pFreeMemAddress = NULL ;
}

void * jdd_MemRealloc (void *pPtr, JC_UINT32 uiSize) 
{
	if (uiSize == 0)
	{
		return pPtr ;
	}
	return realloc (pPtr, uiSize) ;
}
#endif
#endif /** MEM_LOG_ENABLED **/

#ifndef MEM_USE_SYSTEMCALL

static void * memalloc (JC_UINT32 items , JC_UINT32 size)
{
	void *pMem = NULL ;

	pMem = calloc (items, size) ;

	return pMem ;
}


static void memfree (void *ptr)
{
	free (ptr) ;
}

#endif

#endif
/***************************************************************************
* All Global Function Definitions
**************************************************************************/


/* END OF FILE */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服丝袜成人动漫| 亚洲影院久久精品| 久久综合色8888| 国产日韩欧美不卡在线| 亚洲欧美综合另类在线卡通| 亚洲精品写真福利| 日本久久一区二区三区| 欧美人xxxx| 中文字幕+乱码+中文字幕一区| 亚洲成人av一区二区| 国产乱人伦精品一区二区在线观看| 99久久免费精品高清特色大片| 欧美图区在线视频| 国产精品久久久久久久久久免费看 | 亚洲欧美福利一区二区| 久久av中文字幕片| 一本大道av一区二区在线播放 | 国产一区二区视频在线播放| 91丝袜高跟美女视频| 国产亚洲一区二区在线观看| 午夜免费欧美电影| 色哟哟日韩精品| 日韩av电影免费观看高清完整版在线观看| 99久久国产综合色|国产精品| 伊人开心综合网| 欧美一区二区三区啪啪| 亚洲欧美一区二区三区极速播放 | 99国产精品国产精品久久| 亚洲午夜影视影院在线观看| 91日韩一区二区三区| 午夜精品一区二区三区免费视频| 日韩欧美一区中文| 视频一区二区三区入口| 91精彩视频在线| 精品综合免费视频观看| 欧美成人精品3d动漫h| 美女在线观看视频一区二区| 欧美一区二区三区视频在线 | 中文字幕欧美日本乱码一线二线| 欧美中文字幕一区| 午夜欧美一区二区三区在线播放| 国产女人18毛片水真多成人如厕 | 99国产精品一区| 国内精品在线播放| 久久色在线观看| 欧美最猛性xxxxx直播| 高清shemale亚洲人妖| 久久久不卡网国产精品一区| 精品一区二区久久| 亚洲高清免费视频| 亚洲欧美另类久久久精品| ww亚洲ww在线观看国产| 在线电影国产精品| 久久99久国产精品黄毛片色诱| 亚洲人成精品久久久久| 欧美国产综合色视频| 日韩视频在线永久播放| 欧美中文一区二区三区| bt7086福利一区国产| 一区二区三区加勒比av| 欧美高清www午色夜在线视频| 99在线热播精品免费| 成人午夜在线视频| 亚洲丝袜美腿综合| 欧美性大战xxxxx久久久| 99国产精品国产精品毛片| 成熟亚洲日本毛茸茸凸凹| 国产综合一区二区| 国模少妇一区二区三区| 欧美aaaaa成人免费观看视频| 日韩精品一区国产麻豆| 成人一级片网址| 国产精品综合久久| 精品一区二区日韩| 激情国产一区二区 | 欧美激情一区不卡| 久久精品视频在线免费观看| 久久久久久久久久久久久久久99| 精品国产乱码久久久久久免费 | 亚洲第四色夜色| 亚洲成a人在线观看| 亚洲午夜激情网页| 日韩精品三区四区| 免费观看成人av| 美女视频黄频大全不卡视频在线播放| 日本在线不卡一区| 黑人巨大精品欧美一区| 精品一区二区免费在线观看| 国产99一区视频免费 | 色噜噜偷拍精品综合在线| 欧美自拍偷拍一区| 欧美精品乱人伦久久久久久| 欧美一区二区日韩一区二区| 欧美刺激脚交jootjob| 国产清纯白嫩初高生在线观看91 | 亚洲三级理论片| 亚洲精品日产精品乱码不卡| 一区二区理论电影在线观看| 亚洲国产欧美日韩另类综合| 午夜久久福利影院| 精品亚洲成a人| 成人一区二区三区在线观看| 91影视在线播放| 欧美日韩一级视频| 国产91富婆露脸刺激对白| av资源网一区| 欧美群妇大交群的观看方式| 精品日韩99亚洲| 中文字幕一区二区日韩精品绯色| 一区二区视频在线| 青青草97国产精品免费观看无弹窗版| 国产精品一区二区男女羞羞无遮挡| 9l国产精品久久久久麻豆| 欧美三级蜜桃2在线观看| 精品久久久影院| 亚洲男女毛片无遮挡| 日本不卡一区二区三区| 成人激情小说网站| 国产米奇在线777精品观看| 91丨九色丨国产丨porny| 欧美一级黄色大片| 亚洲视频图片小说| 国产一区二区网址| 欧美性生活久久| 国产精品毛片a∨一区二区三区| 久久久亚洲午夜电影| 亚洲香蕉伊在人在线观| 国产成人精品影院| 国产ts人妖一区二区| 欧美亚洲一区二区三区四区| 久久综合九色综合97_久久久| 亚洲一区二区三区不卡国产欧美| 精品一区二区免费视频| 欧美猛男gaygay网站| 国产精品视频在线看| 奇米888四色在线精品| 色综合久久88色综合天天6| 久久综合色播五月| 日本中文字幕一区二区视频| 91网页版在线| 国产精品美女久久久久久久| 精品系列免费在线观看| 欧美日韩一区二区三区在线看| 亚洲国产精品激情在线观看| 老司机精品视频在线| 欧美日韩免费电影| 亚洲欧美日韩国产中文在线| 国产福利一区二区三区| 精品久久久久久久久久久久包黑料| 亚洲在线免费播放| 99精品久久只有精品| 久久久www成人免费毛片麻豆| 日韩和欧美一区二区| 91国偷自产一区二区三区成为亚洲经典 | 国产精品国产三级国产普通话蜜臀| 免费av成人在线| 亚洲精品视频免费看| 国产精品1区2区| 久久综合狠狠综合久久激情| 蜜臀av一区二区在线免费观看 | 国产一区二区三区免费播放| 欧美一区二区在线视频| 午夜激情久久久| 欧美美女视频在线观看| 亚洲国产欧美日韩另类综合| 欧美亚洲国产bt| 亚洲第一会所有码转帖| 欧美视频中文一区二区三区在线观看 | 韩国精品主播一区二区在线观看 | 激情都市一区二区| 久久嫩草精品久久久久| 国产在线精品一区二区| 2023国产一二三区日本精品2022| 美腿丝袜在线亚洲一区| 26uuu欧美| 国产不卡视频在线播放| 国产精品国产三级国产有无不卡| 成人久久久精品乱码一区二区三区| 国产日韩视频一区二区三区| 国产69精品久久777的优势| 国产精品美女久久久久aⅴ| 99v久久综合狠狠综合久久| 一区二区久久久久| 欧美精品一二三| 久久国产成人午夜av影院| 久久这里只有精品首页| 国产成人亚洲综合a∨婷婷图片| 国产精品系列在线| 在线亚洲一区二区| 日韩精品成人一区二区在线| 精品免费99久久| 成人黄色国产精品网站大全在线免费观看| 亚洲欧洲av一区二区三区久久| 欧美系列日韩一区| 久久黄色级2电影| 国产精品久久99| 欧美日韩黄色影视| 国产精品亚洲一区二区三区妖精| 国产精品久久影院| 欧美高清精品3d|