Raised This Month: $12 Target: $400
 3% 

New menu system memory leak bug


Post New Thread Reply   
 
Thread Tools Display Modes
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 08-24-2019 , 14:52   Re: New menu system memory leak bug
Reply With Quote #11

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.
__________________

Last edited by edon1337; 08-24-2019 at 14:52.
edon1337 is offline
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
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 08-24-2019 , 16:50   Re: New menu system memory leak bug
Reply With Quote #13

Quote:
Originally Posted by Natsheh View Post
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;

Shorter code doesn't mean optimization, both codes do the same thing.
__________________
edon1337 is offline
Natsheh
Veteran Member
Join Date: Sep 2012
Old 08-25-2019 , 00:10   Re: New menu system memory leak bug
Reply With Quote #14

Yes but it help understand the code better.
And saves space :^)
__________________
@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-25-2019 at 00:11.
Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:04.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode