Gdk events - проблем с мемори
От: arkhivania  
Дата: 03.10.03 11:23
Оценка:
Стоит такая задача, с помощью GdkEvent послать просто Client сообщение, если делать, все, как написано в reference, то нужно с помощью gdk_event_new() создать GdkEvent * , потом заполнить Event данными , запихнуть в очередь gdk_event_put() , и!!!! освободить GdkEvent функцией gdk_event_free(), так вот на этом месте и падение всего нафиг. Если не освобождать, то все ок, но!!! память течет, подскажите пожалуйста, заранее спасибо.
Re: Gdk events - проблем с мемори
От: _wqwa США  
Дата: 09.10.03 15:32
Оценка:
Здравствуйте, arkhivania, Вы писали:

A>Стоит такая задача, с помощью GdkEvent послать просто Client сообщение, если делать, все, как написано в reference, то нужно с помощью gdk_event_new() создать GdkEvent * , потом заполнить Event данными , запихнуть в очередь gdk_event_put() , и!!!! освободить GdkEvent функцией gdk_event_free(), так вот на этом месте и падение всего нафиг. Если не освобождать, то все ок, но!!! память течет, подскажите пожалуйста, заранее спасибо.

Видать, не вовремя освобождаешь. Как я понимаю, надо дождаться, пока его не отработают.
Кто здесь?!
Re[2]: Gdk events - проблем с мемори
От: arkhivania  
Дата: 10.10.03 10:26
Оценка:
Есть только проблема, что все это крутится в одном потоке! По исходникам gdk я смотрел, они сами освобождают, поэтому, все мне это показалось жутким, и неприятным. Перешел на SDL для вывода графики, вроде как нормальнее ( компилируется быстрее ), но придется писать самому вывод текста
Re: Всё получилось!!!
От: arkhivania  
Дата: 06.11.03 08:35
Оценка:
В общем, если у кого будет еще такая проблема, то решение простое.
gdk_event_free( event ); — падает, если event->any.window != NULL,
если приравнять NULL — то всё замечательно.
Это у меня происходило с EventType = GDK_CLIENT_EVENT.
Если не вызывать gdk_event_free( event ) , то и с event->any.window != NULL будет работать, но память течет. Не в курсе как с другими типами Event-a, но с этим вот так.
А, да, хотелось бы спросить, как оТцы под xlib — ом делают USER_MESSAGES, а то я вот этим CLIENT — ом и пользуюсь, не уверен, что это грамотно. сенькс.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.