From f1c5abd4a56312be272ffd4092f722bd3610d20a Mon Sep 17 00:00:00 2001 From: mgubi Date: Tue, 24 Nov 2009 09:49:29 +0000 Subject: [PATCH] fixes for timer bug git-svn-id: svn://svn.savannah.gnu.org/texmacs/trunk@2829 64cb5145-927a-446d-8aed-2fb7b4773692 --- src/src/Graphics/Renderer/basic_renderer.cpp | 2 +- src/src/Graphics/Renderer/basic_renderer.hpp | 5 +++-- src/src/Plugins/Cairo/cairo_renderer.cpp | 2 +- src/src/Plugins/Cocoa/aqua_renderer.mm | 2 +- src/src/Plugins/MacOS/cg_renderer.cpp | 2 +- src/src/Plugins/Qt/QTMWidget.cpp | 8 ++++---- src/src/Plugins/Qt/qt_gui.cpp | 24 ++++++++++++------------ src/src/Plugins/Qt/qt_renderer.cpp | 2 +- 8 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/src/Graphics/Renderer/basic_renderer.cpp b/src/src/Graphics/Renderer/basic_renderer.cpp index 56350593..e3b82e08 100755 --- a/src/src/Graphics/Renderer/basic_renderer.cpp +++ b/src/src/Graphics/Renderer/basic_renderer.cpp @@ -374,7 +374,7 @@ void basic_renderer_rep::image_auto_gc () { while (it->busy()) { tree lookup= it->next(); cache_image_element ci = cache_image [lookup]; - int diff= time- ci->time; + time_t diff= time- ci->time; int fact= ci->nr; fact= fact * fact * fact; if ((ci->w * ci->h) < 400) fact= fact * 5; diff --git a/src/src/Graphics/Renderer/basic_renderer.hpp b/src/src/Graphics/Renderer/basic_renderer.hpp index e3b6e875..f3195a53 100755 --- a/src/src/Graphics/Renderer/basic_renderer.hpp +++ b/src/src/Graphics/Renderer/basic_renderer.hpp @@ -50,9 +50,10 @@ int hash (basic_character xc); ******************************************************************************/ struct cache_image_element_rep: concrete_struct { - int w,h,nr,time; + int w,h,nr; + time_t time; void *ptr; - cache_image_element_rep (int w2, int h2, int time2, void *ptr2) : + cache_image_element_rep (int w2, int h2, time_t time2, void *ptr2) : w(w2), h(h2), nr(0), time(time2), ptr(ptr2) {}; virtual ~cache_image_element_rep() {}; friend class cache_image_element; diff --git a/src/src/Plugins/Cairo/cairo_renderer.cpp b/src/src/Plugins/Cairo/cairo_renderer.cpp index 862aac37..c135e8fb 100644 --- a/src/src/Plugins/Cairo/cairo_renderer.cpp +++ b/src/src/Plugins/Cairo/cairo_renderer.cpp @@ -259,7 +259,7 @@ cairo_renderer_rep::polygon (array x, array y, bool convex) { ******************************************************************************/ struct cairo_cache_image_rep: cache_image_element_rep { - cairo_cache_image_rep (int w2, int h2, int time2, cairo_surface_t *ptr2) : + cairo_cache_image_rep (int w2, int h2, time_t time2, cairo_surface_t *ptr2) : cache_image_element_rep(w2,h2,time2,ptr2) { tm_cairo_surface_reference ((cairo_surface_t *) ptr); } virtual ~cairo_cache_image_rep() { diff --git a/src/src/Plugins/Cocoa/aqua_renderer.mm b/src/src/Plugins/Cocoa/aqua_renderer.mm index 2973ccfc..25ec1d62 100644 --- a/src/src/Plugins/Cocoa/aqua_renderer.mm +++ b/src/src/Plugins/Cocoa/aqua_renderer.mm @@ -232,7 +232,7 @@ aqua_renderer_rep::polygon (array x, array y, bool convex) { * Image rendering ******************************************************************************/ struct aqua_cache_image_rep: cache_image_element_rep { - aqua_cache_image_rep (int w2, int h2, int time2, NSImage *ptr2) : + aqua_cache_image_rep (int w2, int h2, time_t time2, NSImage *ptr2) : cache_image_element_rep(w2,h2,time2,ptr2) { [(NSImage*)ptr retain]; }; virtual ~aqua_cache_image_rep() { [(NSImage*)ptr release]; }; }; diff --git a/src/src/Plugins/MacOS/cg_renderer.cpp b/src/src/Plugins/MacOS/cg_renderer.cpp index e95536b2..a4e0be16 100755 --- a/src/src/Plugins/MacOS/cg_renderer.cpp +++ b/src/src/Plugins/MacOS/cg_renderer.cpp @@ -220,7 +220,7 @@ cg_renderer_rep::polygon (array x, array y, bool convex) { * Image rendering ******************************************************************************/ struct cg_cache_image_rep: cache_image_element_rep { - cg_cache_image_rep (int w2, int h2, int time2, CGImageRef ptr2) : + cg_cache_image_rep (int w2, int h2, time_t time2, CGImageRef ptr2) : cache_image_element_rep(w2,h2,time2,ptr2) { CGImageRetain((CGImageRef)ptr); }; virtual ~cg_cache_image_rep() { CGImageRelease((CGImageRef)ptr); }; }; diff --git a/src/src/Plugins/Qt/QTMWidget.cpp b/src/src/Plugins/Qt/QTMWidget.cpp index d19ef4e5..d2509509 100644 --- a/src/src/Plugins/Qt/QTMWidget.cpp +++ b/src/src/Plugins/Qt/QTMWidget.cpp @@ -38,8 +38,8 @@ extern const QX11Info *qt_x11Info(const QPaintDevice *pd); #define PIXEL 256 extern bool qt_update_flag; -extern int time_credit; -extern int timeout_time; +extern time_t time_credit; +extern time_t timeout_time; hashmap qtkeymap (0); hashmap qtdeadmap (0); @@ -206,7 +206,7 @@ QTMWidget::paintEvent (QPaintEvent* event) { } if (!qt_update_flag) { - //int start= texmacs_time (); + //time_t start= texmacs_time (); basic_renderer_rep *r; #ifdef USE_CAIRO @@ -254,7 +254,7 @@ QTMWidget::paintEvent (QPaintEvent* event) { r->end(); tm_widget()->set_current_renderer(NULL); - //int end= texmacs_time (); + //time_t end= texmacs_time (); //if (end > start) cout << "Repaint " << end - start << "\n"; } diff --git a/src/src/Plugins/Qt/qt_gui.cpp b/src/src/Plugins/Qt/qt_gui.cpp index 73a9da09..635ddd41 100755 --- a/src/src/Plugins/Qt/qt_gui.cpp +++ b/src/src/Plugins/Qt/qt_gui.cpp @@ -34,8 +34,8 @@ qt_gui_rep* the_gui= NULL; int nr_windows = 0; // FIXME: fake variable, referenced in tm_server bool qt_update_flag = false; -int time_credit; -int timeout_time; +time_t time_credit; +time_t timeout_time; /****************************************************************************** * Constructor and geometry @@ -375,35 +375,35 @@ void exec_pending_commands () #else static array delayed_queue; -static array start_queue; +static array start_queue; void exec_delayed (object cmd) { delayed_queue << cmd; - start_queue << (((int) texmacs_time ()) - 1000000000); + start_queue << (((time_t) texmacs_time ()) - 1000000000); restart_global_timer (); } void exec_delayed_pause (object cmd) { delayed_queue << cmd; - start_queue << ((int) texmacs_time ()); + start_queue << ((time_t) texmacs_time ()); restart_global_timer (); } void exec_pending_commands () { array a= delayed_queue; - array b= start_queue; + array b= start_queue; delayed_queue= array (0); - start_queue= array (0); + start_queue= array (0); int i, n= N(a); for (i=0; i= 0) { object obj= call (a[i]); if (is_int (obj) && (now - b[i] < 1000000000)) { - int pause = as_int (obj); + time_t pause = as_int (obj); //cout << "pause= " << obj << "\n"; delayed_queue << a[i]; start_queue << (now + pause); @@ -415,12 +415,12 @@ exec_pending_commands () { } } if (N(delayed_queue)>0) { - int lapse = start_queue[0]; + time_t lapse = start_queue[0]; int n = N(start_queue); for (i=1; i start_queue[i]) lapse = start_queue[i]; } - lapse = lapse - (int) texmacs_time (); + lapse = lapse - (time_t) texmacs_time (); if (lapse < 0) lapse = 0; // cout << "restarting :" << lapse << LF; restart_global_timer (lapse); @@ -430,7 +430,7 @@ exec_pending_commands () { void clear_pending_commands () { delayed_queue= array (0); - start_queue= array (0); + start_queue= array (0); } #endif diff --git a/src/src/Plugins/Qt/qt_renderer.cpp b/src/src/Plugins/Qt/qt_renderer.cpp index cdbc442d..e101254a 100755 --- a/src/src/Plugins/Qt/qt_renderer.cpp +++ b/src/src/Plugins/Qt/qt_renderer.cpp @@ -234,7 +234,7 @@ qt_renderer_rep::polygon (array x, array y, bool convex) { ******************************************************************************/ struct qt_cache_image_rep: cache_image_element_rep { - qt_cache_image_rep (int w2, int h2, int time2, QImage *ptr2): + qt_cache_image_rep (int w2, int h2, time_t time2, QImage *ptr2): cache_image_element_rep (w2, h2, time2, ptr2) {} virtual ~qt_cache_image_rep () { delete static_cast (ptr); } -- 2.11.4.GIT