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

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

?? jdd_memapi.c

?? gif to bmp conversion
?? C
字號:
#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一区二区三区免费野_久草精品视频
国产午夜久久久久| 日韩国产欧美在线观看| 亚洲国产视频在线| 国产一区欧美一区| 欧美日韩色综合| 久久久精品影视| 一区二区三国产精华液| 国产精品一二三四| 91精品国产91热久久久做人人| 国产精品每日更新在线播放网址| 日本va欧美va瓶| 欧美性猛交xxxxxxxx| 久久亚洲综合色| 日韩综合一区二区| 91久久奴性调教| 中文字幕第一区综合| 奇米精品一区二区三区在线观看 | 538在线一区二区精品国产| 久久久久久免费毛片精品| 亚洲国产欧美在线人成| 91污片在线观看| 欧美国产97人人爽人人喊| 蜜桃视频在线一区| 3751色影院一区二区三区| 亚洲丶国产丶欧美一区二区三区| 波多野结衣精品在线| 久久久精品tv| 国内精品国产成人国产三级粉色| 91精品国产欧美日韩| 亚洲成人一区在线| 欧美日韩免费一区二区三区| 亚洲综合网站在线观看| 欧洲精品一区二区| 一区二区不卡在线播放| 一本高清dvd不卡在线观看| 国产精品久久久久婷婷| 成人黄色av网站在线| 国产精品天美传媒沈樵| 成人国产视频在线观看| 国产精品视频你懂的| 成人黄色777网| 亚洲欧美乱综合| 欧美日韩中文精品| 日韩不卡一区二区| 日韩欧美国产三级| 国产成人午夜高潮毛片| 国产精品久久久久一区二区三区共| 99久久精品费精品国产一区二区| 1024成人网| 欧美日韩日本视频| 精品一二三四区| 国产精品女同一区二区三区| 成a人片亚洲日本久久| 亚洲欧美日韩国产一区二区三区| 91久久精品日日躁夜夜躁欧美| 亚洲国产日韩av| 日韩视频免费观看高清完整版 | 久久精品二区亚洲w码| 欧美精品一区二区三区蜜臀| 福利一区在线观看| 亚洲国产成人va在线观看天堂| 日韩一区二区电影网| 国产福利不卡视频| 亚洲精品乱码久久久久久黑人| 欧美日韩dvd在线观看| 国产精品中文字幕欧美| 亚洲免费av高清| 欧美大肚乱孕交hd孕妇| 9l国产精品久久久久麻豆| 日韩专区中文字幕一区二区| 国产日韩欧美亚洲| 欧美色图一区二区三区| 国产一区欧美一区| 亚洲成a人片在线观看中文| 精品国产成人系列| 91久久精品一区二区| 国产精品自拍av| 日韩高清一区在线| 国产精品传媒在线| 精品精品国产高清一毛片一天堂| 91在线小视频| 国产成人小视频| 麻豆成人久久精品二区三区小说| ●精品国产综合乱码久久久久| 日韩欧美国产综合在线一区二区三区| 成人h动漫精品| 久久99国产精品尤物| 亚洲影视在线观看| 国产精品久久久久久久久晋中 | 一区二区三区中文在线观看| 久久免费午夜影院| 69堂成人精品免费视频| 欧美自拍丝袜亚洲| www.激情成人| 国产成人免费视频网站| 免费高清不卡av| 五月天中文字幕一区二区| 最新成人av在线| 国产日韩欧美精品一区| 日韩精品一区二区三区视频在线观看 | 国产综合色精品一区二区三区| 一区二区欧美国产| 成人欧美一区二区三区小说| 精品久久久久一区二区国产| 欧美一级片在线看| 欧美女孩性生活视频| 91福利国产成人精品照片| 99久久免费精品| 成人av午夜影院| 国产另类ts人妖一区二区| 另类小说图片综合网| 天堂在线亚洲视频| 午夜精品视频一区| 午夜私人影院久久久久| 天堂va蜜桃一区二区三区漫画版| 午夜精品一区二区三区三上悠亚| 亚洲不卡在线观看| 日韩精品电影一区亚洲| 无码av中文一区二区三区桃花岛| 亚洲永久免费视频| 日韩经典中文字幕一区| 美女一区二区久久| 国产真实乱对白精彩久久| 国产一区999| 国产毛片精品视频| 国产成人精品一区二区三区四区| 国产精品白丝av| 99riav一区二区三区| 91免费国产在线观看| 欧美性生活久久| 91精品国产综合久久香蕉麻豆| 日韩午夜激情av| 国产午夜亚洲精品理论片色戒| 日本一区二区成人在线| 亚洲日穴在线视频| 午夜精品视频在线观看| 精品一区二区久久久| 丁香天五香天堂综合| 91蜜桃在线免费视频| 精品视频一区三区九区| 日韩一区二区三区电影在线观看 | 欧美亚洲综合一区| 欧美一级理论性理论a| 久久久久久久久久久黄色| 国产精品毛片大码女人| 亚洲国产中文字幕在线视频综合 | 777精品伊人久久久久大香线蕉| 日韩一区二区视频在线观看| 国产偷国产偷亚洲高清人白洁 | 久久精品一区二区三区av| 国产精品白丝在线| 亚洲在线中文字幕| 国模一区二区三区白浆| 91福利视频网站| 久久先锋影音av鲁色资源| 亚洲免费av高清| 国内成人自拍视频| 欧美在线观看一区二区| 精品国产一区久久| 亚洲另类春色校园小说| 久久99热国产| 欧美日韩视频在线第一区| 欧美激情在线一区二区| 三级成人在线视频| 成人国产精品免费观看| 日韩一区二区三区电影| 一区二区日韩电影| 丁香一区二区三区| 5月丁香婷婷综合| 亚洲精品免费视频| 风间由美性色一区二区三区| 51精品秘密在线观看| 亚洲精品免费播放| 成人性色生活片| 精品国产一区二区三区忘忧草 | 老司机午夜精品| 在线观看日韩高清av| 日本一二三四高清不卡| 美腿丝袜亚洲综合| 欧美日韩高清一区二区三区| 国产精品久久久久久久久久免费看 | 国产成人精品三级麻豆| 欧美日韩一区中文字幕| 1000部国产精品成人观看| 国产很黄免费观看久久| 日韩免费视频一区| 午夜久久久久久久久| 欧美在线视频全部完| 中文字幕日韩一区| 成人app下载| 国产精品三级av| 国产成人午夜99999| 久久久三级国产网站| 极品瑜伽女神91| 欧美不卡123| 久久精品免费观看| 日韩午夜在线观看视频| 久久超级碰视频| 精品剧情v国产在线观看在线| 日韩中文欧美在线|