View Single Post
Natsheh
Veteran Member
Join Date: Sep 2012
Old 08-24-2019 , 14:56   Re: New menu system memory leak bug
Reply With Quote #12

Quote:
Originally Posted by edon1337 View Post
First of all, that's not my code, I never did that in my code.
Second, you get memory leaks if you don't destroy your menu after finishing your work with it.
I know it's not your code it's a optimized way of your code I wrote to give you an example to what you should do.


Your CommandsMenu_Handler function should be like this
PHP Code:

@CommandsMenu_HandleridiMenuiItem )
{
        
// destroying the menu at begining we never needed to extract info from it...
    
menu_destroyiMenu );

    if( 
iItem == MENU_EXIT )
    {
        return 
PLUGIN_HANDLED;
    }
    
    switch( 
iItem )
    {    
    case 
0:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigKICK_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
KickMenuid );
        }
        
    case 
1:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigBAN_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
BanMenuid );
        }
        
    case 
2:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigADD_BAN_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
AddBanMenuid );
        }
        
    case 
3:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigADD_GAG_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
AddGagMenuid );
        }
        
    case 
4:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigGAG_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
GagMenuid );
        }
        
    case 
5:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigUNBAN_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
UnBanMenuid );
        }
        
    case 
6:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigUNGAG_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
UnGagMenuid );
        }    
        
    case 
7:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigSLAY_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
SlayMenuid );
        }
        
    case 
8:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigSLAP_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
SlapMenuid );
        }
        
    case 
9:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigTEAM_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
TeamMenuid );
        }
        
    case 
10:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigMAP_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
            
MapMenuid );
        }
        
    case 
11:
        {
            if( ~ 
get_user_flagsid ) & g_iConfigFREEZE_FLAG ] )
            {
                
send_messageidCHATtrue"%L"id"NO_ACCESS_MENU" );
                
                return 
PLUGIN_HANDLED;
            }
            
FreezeMenuid );
        }
    }
    return 
PLUGIN_HANDLED;

__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !


Last edited by Natsheh; 08-24-2019 at 15:05.
Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh