projects
/
platform
/
core
/
uifw
/
at-spi2-atk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Re-register if the registry goes away and later returns
[platform/core/uifw/at-spi2-atk.git]
/
atk-adaptor
/
accessible-leasing.c
diff --git
a/atk-adaptor/accessible-leasing.c
b/atk-adaptor/accessible-leasing.c
index
0bfd496
..
dcddb0b
100644
(file)
--- a/
atk-adaptor/accessible-leasing.c
+++ b/
atk-adaptor/accessible-leasing.c
@@
-24,10
+24,16
@@
#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>
-#include <accessible-leasing.h>
+#include "accessible-leasing.h"
+
+#ifdef SPI_ATK_DEBUG
+#include "accessible-cache.h"
+#endif
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
+SpiLeasing *spi_global_leasing;
+
typedef struct _ExpiryElement
{
guint expiry_s;
typedef struct _ExpiryElement
{
guint expiry_s;
@@
-66,7
+72,9
@@
spi_leasing_finalize (GObject * object)
{
SpiLeasing *leasing = SPI_LEASING (object);
{
SpiLeasing *leasing = SPI_LEASING (object);
- g_free (leasing->expiry_queue);
+ if (leasing->expiry_func_id)
+ g_source_remove (leasing->expiry_func_id);
+ g_queue_free (leasing->expiry_queue);
G_OBJECT_CLASS (spi_leasing_parent_class)->finalize (object);
}
G_OBJECT_CLASS (spi_leasing_parent_class)->finalize (object);
}
@@
-76,7
+84,7
@@
spi_leasing_dispose (GObject * object)
SpiLeasing *leasing = SPI_LEASING (object);
ExpiryElement *head;
SpiLeasing *leasing = SPI_LEASING (object);
ExpiryElement *head;
- while (
head = g_queue_pop_head (leasing->expiry_queue
))
+ while (
(head = g_queue_pop_head (leasing->expiry_queue)
))
{
g_object_unref (head->object);
g_slice_free (ExpiryElement, head);
{
g_object_unref (head->object);
g_slice_free (ExpiryElement, head);
@@
-106,6
+114,11
@@
expiry_func (gpointer data)
{
current = g_queue_pop_head (leasing->expiry_queue);
{
current = g_queue_pop_head (leasing->expiry_queue);
+#ifdef SPI_ATK_DEBUG
+ g_debug ("REVOKE - ");
+ spi_cache_print_info (current->object);
+#endif
+
g_object_unref (current->object);
g_slice_free (ExpiryElement, current);
g_object_unref (current->object);
g_slice_free (ExpiryElement, current);
@@
-161,7
+174,7
@@
add_expiry_timeout (SpiLeasing * leasing)
The lease time is going to be rounded up, as the lease time should be
considered a MINIMUM that the object will be leased for.
*/
The lease time is going to be rounded up, as the lease time should be
considered a MINIMUM that the object will be leased for.
*/
-#define LEASE_TIME_S
3
+#define LEASE_TIME_S
15
#define EXPIRY_TIME_S (LEASE_TIME_S + 1)
GObject *
#define EXPIRY_TIME_S (LEASE_TIME_S + 1)
GObject *
@@
-190,6
+203,11
@@
spi_leasing_take (SpiLeasing * leasing, GObject * object)
add_expiry_timeout (leasing);
add_expiry_timeout (leasing);
+#ifdef SPI_ATK_DEBUG
+ g_debug ("LEASE - ");
+ spi_cache_print_info (object);
+#endif
+
return object;
}
return object;
}