You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The else block in a nested if-else is missing braces around its statements in the decompilation, which means those statements will always execute even if the if condition is true. Seems to only affect second level if-else nesting. Example:
#pragma semicolon 1;
#include <sourcemod>
public OnPluginStart()
{
new i = 1, j = 2, k = 3;
// case 1
if (i == 1)
LogMessage("if 1");
else
LogMessage("else 1");
// case 2
if (i == 1)
{
if (j == 2)
LogMessage("if 2");
else
LogMessage("else 2 bad");
}
// case 3
if (i == 1)
{
if (j == 2)
{
LogMessage("if 3");
}
else
{
LogMessage("else 3 bad");
}
}
// case 4
if (i == 1)
{
if (j == 2)
{
if (k == 3)
LogMessage("if 4");
else
LogMessage("else 4");
}
else
{
LogMessage("else 4 bad");
}
}
// case 5
if (i == 1)
{
if (j == 2)
{
if (k == 3)
{
LogMessage("if 5");
}
else
{
LogMessage("else 5");
}
}
else
{
if (k == 3)
{
LogMessage("if 5");
}
else
{
LogMessage("else 5 bad");
}
}
}
}
Decompilation:
public void:OnPluginStart()
{
new i = 1;
new j = 2;
new k = 3;
if (i == 1)
{
LogMessage("if 1");
}
else
{
LogMessage("else 1");
}
if (i == 1)
{
if (j == 2)
{
LogMessage("if 2");
}
LogMessage("else 2 bad");
}
if (i == 1)
{
if (j == 2)
{
LogMessage("if 3");
}
LogMessage("else 3 bad");
}
if (i == 1)
{
if (j == 2)
{
if (k == 3)
{
LogMessage("if 4");
}
else
{
LogMessage("else 4");
}
}
LogMessage("else 4 bad");
}
if (i == 1)
{
if (j == 2)
{
if (k == 3)
{
LogMessage("if 5");
}
else
{
LogMessage("else 5");
}
}
if (k == 3)
{
LogMessage("if 5");
}
LogMessage("else 5 bad");
}
return void:0;
}
The text was updated successfully, but these errors were encountered:
The else block in a nested if-else is missing braces around its statements in the decompilation, which means those statements will always execute even if the if condition is true. Seems to only affect second level if-else nesting. Example:
Decompilation:
The text was updated successfully, but these errors were encountered: