From: Vitaly V. B. <vit...@us...> - 2004-09-28 11:47:09
|
On Tue, 28 Sep 2004 10:51:06 +0100 salsaman <sal...@xs...> wrote: > >Or, better IMO, visual_list_free() from visual_list_destroy() in lv_list.c. > >This WILL LEAK Memory, but won'r thrash malloc state... there is one more > >here, Dennis. > > > Leak memory !? I hope you will fix this too. I can't have external Of course we'll fix this! You asked some patch... Here's my suggestion. Just for a few days. I'm quiet busy right now... sorry! At least it will fix all known (for this moment) memory issues. Oh, and will add another one :) which is kinda better because it will not break memory manager consistency. > plugins to LiVES which leak memory. Anyway, it will not leak memory during "normal operation", only when plugins switched or Libvisual deinitialized, etc. I don't think that somebody will create/free lists in a loop. And don't worry, that is not that much memory to kill application in a short time, I think. ;) -- Vitaly GPG Key ID: F95A23B9 |
From: salsaman <sal...@xs...> - 2004-09-28 12:20:15
|
Vitaly V. Bursov wrote: >On Tue, 28 Sep 2004 10:51:06 +0100 >salsaman <sal...@xs...> wrote: > > > >>>Or, better IMO, visual_list_free() from visual_list_destroy() in lv_list.c. >>>This WILL LEAK Memory, but won'r thrash malloc state... there is one more >>>here, Dennis. >>> >>> >>> >>Leak memory !? I hope you will fix this too. I can't have external >> >> >Of course we'll fix this! You asked some patch... Here's my suggestion. >Just for a few days. I'm quiet busy right now... sorry! > >At least it will fix all known (for this moment) memory issues. >Oh, and will add another one :) which is kinda better because it will >not break memory manager consistency. > > > >>plugins to LiVES which leak memory. >> >> >Anyway, it will not leak memory during "normal operation", only when >plugins switched or Libvisual deinitialized, etc. > OK, well deinit/reinit could happen several thousand times during a long (I am talking about days or weeks) run of LiVES. Don't forget this is not just a VJ app, people use this application to edit professional video. If LiVES crashes, people could lose hours or days of work. Even more so when I add the multitrack editor and people can make generators into tracks. Anyway, I am confident that you will have all these memory issues fixed soon. Salsaman. > I don't think that >somebody will create/free lists in a loop. > >And don't worry, that is not that much memory to kill application >in a short time, I think. ;) > > > |
From: Dennis S. <sy...@yo...> - 2004-09-28 15:15:26
|
> Leak memory !? I hope you will fix this too. I can't have external > plugins to LiVES which leak memory. > > Salsaman. No panic Salsaman, this is just CVS, and it's been fixed completely by now. Cheers, Dennis |
From: Duilio J. P. <dp...@fc...> - 2004-10-02 03:31:40
|
I have implemented visual_log_set_verboseness() on libvisual core. We can set these: typedef enum { VISUAL_LOG_VERBOSENESS_NONE, /**< Show only VISUAL_LOG_INFO and VISUAL_LOG_ERROR messages. */ VISUAL_LOG_VERBOSENESS_LOW, /**< Show only VISUAL_LOG_INFO, VISUAL_LOG_ERROR and VISUAL_LOG_CRITICAL messages. */ VISUAL_LOG_VERBOSENESS_MEDIUM, /**< Show all log messages except VISUAL_LOG_DEBUG ones. */ VISUAL_LOG_VERBOSENESS_HIGH /**< Show all log messages. */ } VisLogVerboseness; The default level is VISUAL_LOG_VERBOSENESS_MEDIUM. (Dennis, do you think it shoul be LOW?). To avoid showing info or error messages, or to redirected them or to process them on some special way, use: visual_log_set_info_handler (visual_log_message_handler_func_t handler); where handler must have signature: void my_info_handler (const char *message, const char *funcname) { /* funcname is the name of the function which invokes visual_log() and can be NULL on non-GNU systems */ ... } Similar handlers can be set for warning/critical/error messages. Bye, Duilio. |
From: salsaman <sal...@xs...> - 2004-10-02 08:56:32
|
Duilio Javier Protti wrote: >I have implemented visual_log_set_verboseness() on >libvisual core. We can set these: > >typedef enum { > > VISUAL_LOG_VERBOSENESS_NONE, /**< Show only VISUAL_LOG_INFO > and VISUAL_LOG_ERROR messages. */ > > VISUAL_LOG_VERBOSENESS_LOW, /**< Show only VISUAL_LOG_INFO, > VISUAL_LOG_ERROR and > VISUAL_LOG_CRITICAL messages. */ > > VISUAL_LOG_VERBOSENESS_MEDIUM, /**< Show all log messages > except VISUAL_LOG_DEBUG ones. */ > > VISUAL_LOG_VERBOSENESS_HIGH /**< Show all log messages. */ > >} VisLogVerboseness; > > Ermm...shouldnt' VERBOSENESS_NONE produce NO output ? Or can there be a mode LOG_VERBOSENESS_REALLY_REALLY_NONE :-) Anyway haven't you got it the wrong way round, at lower verboseness levels, only the most critical messages should be shown. Salsaman. |
From: Dennis S. <sy...@yo...> - 2004-10-02 09:12:24
|
On Sat, 2004-10-02 at 00:43 -0300, Duilio Javier Protti wrote: > I have implemented visual_log_set_verboseness() on > libvisual core. We can set these: > > The default level is VISUAL_LOG_VERBOSENESS_MEDIUM. (Dennis, do you > think it shoul be LOW?). > > Similar handlers can be set for warning/critical/error messages. I'm very happy with the system you implemented, I've got 1 comment and 1 question. First, there is no enum yet to entirely disable visual_log output, I think that VERBOSENESS_NONE should be really none verbose. One more question, I really like the message handle system, I wonder if it would be possible to also have a 'all messages' handler that can be optionally set. This would be nice for an app that just wants to redirect ALL output. Another thing is that the handler set function should accept a void *priv, if the app wants the handler function to handle a private. Let's say a GtkWidget in which text has to be printed. Thanks for implementing it, Dennis |
From: Duilio J. P. <dp...@fc...> - 2004-10-02 18:31:50
|
> I'm very happy with the system you implemented, I've got 1 comment > and 1 question. First, there is no enum yet to entirely disable > visual_log output, I think that VERBOSENESS_NONE should be really > none verbose. Is true. Now the levels are: typedef enum { VISUAL_LOG_VERBOSENESS_NONE, /**< Don't show any message at all. */ VISUAL_LOG_VERBOSENESS_LOW, /**< Show only VISUAL_LOG_ERROR and VISUAL_LOG_CRITICAL messages. */ VISUAL_LOG_VERBOSENESS_MEDIUM, /**< Show all log messages except VISUAL_LOG_DEBUG ones. */ VISUAL_LOG_VERBOSENESS_HIGH /**< Show all log messages. */ } VisLogVerboseness; > One more question, I really like the message handle system, I wonder > if it would be possible to also have a 'all messages' handler that > can be optionally set. This would be nice for an app that just wants to > redirect ALL output. Another thing is that the handler set function > should accept a void *priv, if the app wants the handler function to > handle a private. Let's say a GtkWidget in which text has to be printed. Ok, the signature of the message handler was moved to: void visual_log_message_handler_func_t (const char *message, const char *funcname, void *privdata); and there is a new function visual_log_set_all_messages_handler(). Thanks a lot for the suggestions! Bye, Duilio. |