View Issue Details

IDProjectCategoryView StatusLast Update
0002056Far ManagerMacropublic2012-04-09 19:23
ReporterMaximus Assigned Tovskirdin  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version3.0 
Fixed in Version3.0 
Summary0002056: Ошибка в возврате plugin.call / callplugin
DescriptionОбещано: Функция возвращает 0, если вызываемого плагина нет или плагин вернул 0. В других случаях функция возвращает значение, отличное от 0
Реально:
1) возвращает 1 игнорируя возврат плагина
2) утечка памяти
TagsNo tags attached.
Build2576

Activities

Maximus

2012-03-27 21:43

reporter  

Plugins120327.diff (408 bytes)   
Index: plugins.cpp
===================================================================
--- plugins.cpp	(revision 7785)
+++ plugins.cpp	(working copy)
@@ -2473,7 +2473,8 @@
 			if (Ret)
 			{
 				PluginHandle *handle=(PluginHandle *)hNewPlugin;
-				*Ret = !hNewPlugin || handle->hPlugin? 1 : 0;
+				*Ret = (hNewPlugin && handle->hPlugin) ? 1 : 0;
+				delete handle;
 			}
 
 			return TRUE;
Plugins120327.diff (408 bytes)   

vskirdin

2012-03-28 14:38

administrator   bugnote:0008830

build 2576

Denis

2012-04-01 13:24

reporter   bugnote:0008839

А может эта строка должна выглядеть так:
*Ret = (!hNewPlugin || (hNewPlugin && handle->hPlugin)) ? 1 : 0;

Maximus

2012-04-01 13:51

reporter   bugnote:0008840

hNewPlugin==NULL, если плагин вернул 0.
читаем описание Plugin.Call и обращаемся к автору плагина, чтобы он возвращал что положено

Maximus

2012-04-08 20:29

reporter   bugnote:0008858

ok

Issue History

Date Modified Username Field Change
2012-03-27 21:43 Maximus New Issue
2012-03-27 21:43 Maximus File Added: Plugins120327.diff
2012-03-28 11:14 vskirdin Assigned To => vskirdin
2012-03-28 11:14 vskirdin Status new => assigned
2012-03-28 14:38 vskirdin Note Added: 0008830
2012-03-28 14:38 vskirdin Status assigned => feedback
2012-04-01 13:24 Denis Note Added: 0008839
2012-04-01 13:51 Maximus Note Added: 0008840
2012-04-01 13:51 Maximus Status feedback => assigned
2012-04-08 20:29 Maximus Note Added: 0008858
2012-04-08 20:29 Maximus Status assigned => resolved
2012-04-09 19:23 vskirdin Build => 2576
2012-04-09 19:23 vskirdin Status resolved => closed
2012-04-09 19:23 vskirdin Resolution open => fixed
2012-04-09 19:23 vskirdin Fixed in Version => 3.0