diller110
Добрая душа
- Сообщения
- 353
- Реакции
- 278
Помогите разобраться, от чего может происходить утечка:
Вот код:
Оффтоп
Строка указанная в ошибке:
new String:Admins[count] [];
C-подобный:
[SM] Plugin encountered error 17: Stack memory leaked by native
L 02/26/2015 - 00:48:14: [SM] Displaying call stack trace for plugin "ac-core.smx":
L 02/26/2015 - 00:48:14: [SM] [0] Line 169, ac-core.sp::Event_PlayerTeam()
Оффтоп
public Event_PlayerTeam(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if (GetClientDeaths(client) == 0 && GetClientFrags(client) == 0 && client>0) {
new Adms[33],count = 0;
for (new i = 1; i <= MaxClients; i++)
if (IsClientInGame(i) && (GetUserFlagBits(i) & ADMFLAG_GENERIC)) Adms[count++] = i;
new String:Admins[count] [];
if (count > 0)
{
for (new i = 0; i < count; i++)
{
if (GetUserFlagBits(Adms)) GetClientName(Adms, Admins[count], 30);
}
}
WelcomeTimers[client][0] = CreateTimer(3.0, Timer1, client);
new Handle:pack = CreateDataPack();
WritePackCell(pack, client);
WritePackCell(pack, count);
WritePackString(pack, Admins[0]);
WritePackString(pack, Admins[1]);
if(IsClientInGame(client)) WelcomeTimers[client][1] = CreateTimer(6.0, Timer2, client);
if(IsClientInGame(client)) WelcomeTimers[client][2] = CreateTimer(10.0, Timer3, pack);
if(IsClientInGame(client)) WelcomeTimers[client][3] = CreateTimer(14.0, Timer4, client);
}
}
public Action:Timer3(Handle:timer, any:pack) {
new client = ReadPackCell(pack);
new count = ReadPackCell(pack);
decl String:admin1[30];
decl String:admin2[30];
ReadPackString(pack, admin1, 30);
ReadPackString(pack, admin2, 30);
CloseHandle(pack);
if (count > 0)
{
if(IsClientInGame(client)) PrintHintText(client, "<font size='26' color='#6699FF'> Админы онлайн: </font><br><font color='#0066FF' size='20'> %s<br>%s</font>", admin1, admin2);
}
}
Посмотреть вложение hintmesseger.sp{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if (GetClientDeaths(client) == 0 && GetClientFrags(client) == 0 && client>0) {
new Adms[33],count = 0;
for (new i = 1; i <= MaxClients; i++)
if (IsClientInGame(i) && (GetUserFlagBits(i) & ADMFLAG_GENERIC)) Adms[count++] = i;
new String:Admins[count] [];
if (count > 0)
{
for (new i = 0; i < count; i++)
{
if (GetUserFlagBits(Adms)) GetClientName(Adms, Admins[count], 30);
}
}
WelcomeTimers[client][0] = CreateTimer(3.0, Timer1, client);
new Handle:pack = CreateDataPack();
WritePackCell(pack, client);
WritePackCell(pack, count);
WritePackString(pack, Admins[0]);
WritePackString(pack, Admins[1]);
if(IsClientInGame(client)) WelcomeTimers[client][1] = CreateTimer(6.0, Timer2, client);
if(IsClientInGame(client)) WelcomeTimers[client][2] = CreateTimer(10.0, Timer3, pack);
if(IsClientInGame(client)) WelcomeTimers[client][3] = CreateTimer(14.0, Timer4, client);
}
}
public Action:Timer3(Handle:timer, any:pack) {
new client = ReadPackCell(pack);
new count = ReadPackCell(pack);
decl String:admin1[30];
decl String:admin2[30];
ReadPackString(pack, admin1, 30);
ReadPackString(pack, admin2, 30);
CloseHandle(pack);
if (count > 0)
{
if(IsClientInGame(client)) PrintHintText(client, "<font size='26' color='#6699FF'> Админы онлайн: </font><br><font color='#0066FF' size='20'> %s<br>%s</font>", admin1, admin2);
}
}
Строка указанная в ошибке:
new String:Admins[count] [];