网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月28日
漏签
0
天
魔兽地图编辑器吧
关注:
65,182
贴子:
3,838,154
看贴
图片
吧主推荐
视频
玩乐
7
回复贴,共
1
页
<返回魔兽地图编...吧
>0< 加载中...
这个函数中的group对象会造成泄露么?
只看楼主
收藏
回复
213cy
水元素
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
有这样一个函数
我在其他的函数中调用它
set g2 = GetUnitsOfPlayerAndTypeId( .... )
然后用接着排泄g2
call DestroyGroup( g2 )
set g2 = null
那么第一函数中的 g 会产生泄露么
送TA礼物
IP属地:河南
1楼
2021-11-07 14:27
回复
沉默的死神天蝎
地理学者
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
不会
IP属地:湖南
来自
Android客户端
2楼
2021-11-07 16:17
回复
收起回复
西夜隐人
地理学者
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
感觉应该会吧,函数里的g不是没set null吗不是很懂,求解答
IP属地:广东
来自
Android客户端
3楼
2021-11-07 18:20
回复
收起回复
冰月十六
水元素
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
首先分析函数行为 GetUnitsOfPlayerAndTypeId
第一句代码:local group g = CreateGroup()
这句代码做其实做了两件事
1.CreateGroup() 创建一个单位组,会得到1个handle,这里我们简单记为 handle_G
2.将 handle_G 赋值给局部变量 g ,那么handle_G的引用次数+1
查看后续代码中并没有set null 这种操作,当然这种写法也注定无法使用set null,因为他要返回g。
那么直到 GetUnitsOfPlayerAndTypeId(...) 函数执行完毕,handle_G的引用次数依旧是1次。
然后再看你的代码
set g2 = GetUnitsOfPlayerAndTypeId( .... )
call DestroyGroup( g2 )
set g2 = null
通过上文解释能知道 GetUnitsOfPlayerAndTypeId 会返回一个handle给我们,我们记为 handle_G,并且handle_G的引用计数为1。
如果你理解了上面说的,那么
set g2 = GetUnitsOfPlayerAndTypeId( .... )就相当于 set g2 = handle_G
这里将hanlde_G赋值给g2,那么hanlde的引用计数再+1,这时候handle_G的引用计数就变为了2。
set g2 = null 这条代码的作用其实就是将hanlde_G的引用计数-1
那么最终 hanlde_G的引用计数等于1,这样handle是不会释放的,从而产生泄露。因为你再也找不到这个handle了。
另外再提醒一下,不记得哪看的文档或者别人告诉我的,再删除单位组之前,你应该先对单位组进行清空。
很久没写过jass了如果没记错的话函数应该是 ClearGroup,记错了就自己查查吧。
应该这样写
call ClearGroup(g2)
call DestroyGroup(g2)
set g2 = null
如何避免这种泄露?
不用辣鸡BJ函数。
如有不对,还请各路大神指正。
IP属地:湖南
4楼
2021-11-07 21:10
回复(1)
收起回复
金皮凤凰蛋
小吧主
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
用全局变量代替g
IP属地:北京
5楼
2021-11-08 12:42
回复
收起回复
蔚然小超人
创世帝
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
不会
IP属地:上海
来自
Android客户端
6楼
2021-11-08 13:19
回复
收起回复
雨露雨回来
误导帝
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
肯定会泄露的,这就相当于a=1,b=a,你让b=null了,a还是=1,你返回一个指针变量实际上返回的是整数地址,不是变量本身,而且你再也没办法获取这个变量了,除非能直接操作内存
IP属地:湖北
7楼
2021-11-10 17:38
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
RNG战队将被石油佬收购
2266980
2
IG拿出离谱BP不敌WBG
1854521
3
印巴双方屯兵克什米尔边境
1567132
4
韩国给残疾人吃劣质便当
1485702
5
大乐子!明日方舟联动mujica
1169922
6
《胆大党》第二季首曝预告
981875
7
电竞选手比赛之前别洗澡了
724056
8
如何评价T1被BRO一脚踢死
533736
9
大伟哥直言翁法罗斯做的不好
432700
10
美末2因高尔夫名场面评分骤降
307401
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示