From c054ac3d4df7fe8b2f58204e677f275bd8f0e60c Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Wed, 30 Oct 2013 16:46:54 +0100 Subject: wx: Fix cleanup of event handlers Event handlers was not removed after objects/process had been delete/died, which causes memory leakage and that fun's was kept in the wx_server process. Code that might be purged and the server died. --- lib/wx/api_gen/wx_extra/wxEvtHandler.c_src | 14 +++++++------- lib/wx/api_gen/wx_gen_cpp.erl | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'lib/wx/api_gen') diff --git a/lib/wx/api_gen/wx_extra/wxEvtHandler.c_src b/lib/wx/api_gen/wx_extra/wxEvtHandler.c_src index 4e492db045..9c5f46b253 100644 --- a/lib/wx/api_gen/wx_extra/wxEvtHandler.c_src +++ b/lib/wx/api_gen/wx_extra/wxEvtHandler.c_src @@ -29,13 +29,13 @@ case 100: { // wxEvtHandler::Connect int eventType = wxeEventTypeFromAtom(bp); bp += *eventTypeLen; char *class_name = bp; bp+= *class_nameLen; if(eventType > 0 ) { - wxeCallbackData * Evt_cb = new wxeCallbackData(Ecmd.caller,(void *) This, - class_name,*fun_cb, - *skip, userData); - This->Connect((int) *winid,(int) *lastId,eventType, - (wxObjectEventFunction)(wxEventFunction) &wxeEvtListener::forward, - Evt_cb, Listener); - rt.addAtom("ok"); + wxeCallbackData * Evt_cb = new wxeCallbackData(Ecmd.caller,getRef(This, memenv), + class_name,*fun_cb, + *skip, userData, Listener); + This->Connect((int) *winid,(int) *lastId,eventType, + (wxObjectEventFunction)(wxEventFunction) &wxeEvtListener::forward, + Evt_cb, Listener); + rt.addAtom("ok"); } else { rt.addAtom("badarg"); rt.addAtom("event_type"); diff --git a/lib/wx/api_gen/wx_gen_cpp.erl b/lib/wx/api_gen/wx_gen_cpp.erl index f00fc0c720..7e35ebfa83 100644 --- a/lib/wx/api_gen/wx_gen_cpp.erl +++ b/lib/wx/api_gen/wx_gen_cpp.erl @@ -1223,7 +1223,7 @@ encode_events(Evs) -> w("~n rt.addAtom((char*)\"wx\");~n" " rt.addInt((int) event->GetId());~n" - " rt.addRef(getRef((void *)(cb->obj), memenv), cb->class_name);~n" + " rt.addRef(cb->obj, cb->class_name);~n" " rt.addExt2Term(cb->user_data);~n"), w(" switch(Etype->cID) {~n"), -- cgit v1.2.3 From f494a333d160fddd22cc01c71b88871399c87832 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Wed, 30 Oct 2013 16:55:58 +0100 Subject: wx: Fix compiler warnings --- lib/wx/api_gen/gl_gen_c.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/wx/api_gen') diff --git a/lib/wx/api_gen/gl_gen_c.erl b/lib/wx/api_gen/gl_gen_c.erl index be2c5cf2bf..8b2a91b671 100644 --- a/lib/wx/api_gen/gl_gen_c.erl +++ b/lib/wx/api_gen/gl_gen_c.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2011. All Rights Reserved. +%% Copyright Ericsson AB 2008-2013. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -242,7 +242,7 @@ decode_arg(P=#arg{name=Name,type=#type{name=Type,base=guard_int}},A0) -> {P, A}; decode_arg(P=#arg{name=Name,type=#type{name=Type,base=string,single=true}},A0) -> w(" ~s *~s = (~s *) bp;~n", [Type,Name,Type]), - w(" int ~sLen[1] = {strlen((char *)~s)}; bp += ~sLen[0]+1+((8-((1+~sLen[0]+~p)%8))%8);~n", + w(" int ~sLen[1] = {(int)strlen((char *)~s)}; bp += ~sLen[0]+1+((8-((1+~sLen[0]+~p)%8))%8);~n", [Name,Name,Name,Name,A0]), {P, 0}; decode_arg(P=#arg{name=Name, -- cgit v1.2.3 From 36085d8a9d71d8a01b667852dc165a8a677bc69e Mon Sep 17 00:00:00 2001 From: Sergei Golovan Date: Thu, 21 Nov 2013 14:06:29 +0100 Subject: wx: wxListBox::Set crashes on wxWidgets 3.0 with NULL argument --- lib/wx/api_gen/wxapi.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/wx/api_gen') diff --git a/lib/wx/api_gen/wxapi.conf b/lib/wx/api_gen/wxapi.conf index 21f9f1b44d..ff680d0655 100644 --- a/lib/wx/api_gen/wxapi.conf +++ b/lib/wx/api_gen/wxapi.conf @@ -812,7 +812,7 @@ {"size",{def, "wxDefaultSize"}}, {"choices",{def, ""}}]}, '~wxListBox','Create','Deselect',{'GetSelections',[{"aSelections", [out]}]}, - {'InsertItems',2},'IsSelected',{'Set',[{"clientData",[skip]}]}, + {'InsertItems',2},'IsSelected',{'Set',[{"clientData",[nowhere]}, {"n", skip_member}]}, 'HitTest', 'SetFirstItem']}. -- cgit v1.2.3 From 4a9055ebb2f5fc69205a1082bbc813839c0e3138 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Thu, 21 Nov 2013 14:18:31 +0100 Subject: wx: Update documentation links to wxWidgets --- lib/wx/api_gen/wx_gen_erl.erl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/wx/api_gen') diff --git a/lib/wx/api_gen/wx_gen_erl.erl b/lib/wx/api_gen/wx_gen_erl.erl index 2e1a0d617a..c87187edc5 100644 --- a/lib/wx/api_gen/wx_gen_erl.erl +++ b/lib/wx/api_gen/wx_gen_erl.erl @@ -61,7 +61,7 @@ gen_class1(C=#class{name=Name,parent="static",methods=Ms,options=_Opts}) -> w("", []), w("%% This file is generated DO NOT EDIT~n~n", []), w("%% @doc See external documentation: " - "Misc.\n\n",[]), + "Misc.\n\n",[]), w("%% This module contains wxWidgets utility functions.~n~n", []), w("-module(wx_misc).~n", []), @@ -96,7 +96,7 @@ gen_class1(C=#class{name=Name,parent=Parent,methods=Ms,options=Opts}) -> NewMs = Ms; false -> w("%% @doc See external documentation: " - "~s.\n", + "~s.\n", [lowercase_all(Name), Name]), case C#class.doc of @@ -745,11 +745,11 @@ optional_type2(#param{name=Name, def=Def, type=T}) -> "{" ++ erl_option_name(Name) ++ ", " ++ doc_arg_type2(T) ++ "}". %% %% Default: " ++ Def. doc_link("utils", Func) -> - w("%% @doc See " + w("%% @doc See " "external documentation.~n", [lowercase_all(Func)]); doc_link(Class, Func) -> - w("%% @doc See " + w("%% @doc See " "external documentation.~n", [lowercase_all(Class),lowercase_all(Class),lowercase_all(Func)]). -- cgit v1.2.3