home *** CD-ROM | disk | FTP | other *** search
- /*
- * LeakErr.cpp
- * $Header: /BoundsChecker/Examples/BUGBNCHX/MAINERR/LEAKERR.CPP 3 1/09/97 3:52p Stevea $
- *
- * Description:
- * The Leak Check error functions.
- *
- * Notes:
- * <implementation notes go here>
- *
- ***********************************************************************
- *
- * Nu-Mega Technologies, Inc.
- * P.O. Box 7780
- * Nashua, NH 03060
- *
- * (c) Copyright 1994, 1995 Nu-Mega Technologies, Inc.
- * ALL RIGHTS RESERVED.
- *
- ***********************************************************************
- *
- **********************************************************************/
- #include "stdafx.h"
- #include "LeakErr.h"
-
- // Leak Check - Memory leak
- LPTSTR g_szGlobalBuff ;
- void Leak_MemoryLeak ( )
- {
- _TRY
- {
- g_szGlobalBuff = new TCHAR[ 100 ] ;
- }
- _CATCH
- {
- }
- }
- // Leak Check - Memory leaked due to free
- typedef struct ptrblock
- {
- char * ptr ;
- } PB ;
- void Leak_LeakFromFree ( )
- {
- _TRY
- {
- PB *p ;
- p = (PB *)malloc ( sizeof ( PB ) ) ;
- p->ptr = (char *)malloc( 10 ) ;
- free ( p ) ;
- }
- _CATCH
- {
- }
- }
- // Leak Check - Memory leaked due to reassignment
- void Leak_LeakFromReassign ( )
- {
- _TRY
- {
- char * b ;
- char a[ 10 ] ;
- b = (char *)malloc( 10 ) ;
- b = a ;
- }
- _CATCH
- {
- }
- }
-
- // Leak Check - Memory leaked leaving scope
- char * gimme ( )
- {
- return ( (char *)malloc ( 10 ) ) ;
- }
- void Leak_LeakFromIgnore ( )
- {
- _TRY
- {
- gimme ( ) ;
- }
- _CATCH
- {
- }
- }
- void Leak_LeakFromScope ( )
- {
- _TRY
- {
- int i = 10 ;
- if ( 10 == i )
- {
- char * p = (char *)malloc ( 10 ) ;
- }
- }
- _CATCH
- {
- }
- }
-
- // Leak Check - Resource leak.
- void Leak_ResLeakBitmap ( )
- {
- _TRY
- {
- HBITMAP hBitMap = CreateBitmap ( 80 , 80 , 1 , 8 , NULL ) ;
- }
- _CATCH
- {
- }
- }
- void Leak_ResLeakMetafile ( )
- {
- _TRY
- {
- HDC hDCMeta = CreateMetaFile ( NULL ) ;
- }
- _CATCH
- {
- }
- }
- void Leak_ResLeakMenu ( )
- {
- _TRY
- {
- HMENU hMenu = CreateMenu ( ) ;
- AppendMenu ( hMenu ,
- MF_ENABLED | MF_STRING ,
- 900 ,
- _T ( "&New Menu Item" ) ) ;
- }
- _CATCH
- {
- }
- }
-
-