summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeif Lotfy <seif@lotfy.com>2012-12-29 14:50:29 +0100
committerSeif Lotfy <seif@lotfy.com>2012-12-29 14:50:29 +0100
commitd45d54759f984efd5d9acb73e824bafca32bb25d (patch)
tree65ef5b49975274491962a687402701b286f72836
parent4ac7fe8017454316c28b3d1062790763f03b44ab (diff)
fix ownership issues
-rw-r--r--examples/vala/get-events-with-id.vala6
-rw-r--r--libzeitgeist/log.vala49
2 files changed, 36 insertions, 19 deletions
diff --git a/examples/vala/get-events-with-id.vala b/examples/vala/get-events-with-id.vala
index 32682372..0f5726c3 100644
--- a/examples/vala/get-events-with-id.vala
+++ b/examples/vala/get-events-with-id.vala
@@ -10,10 +10,10 @@ int main ()
Zeitgeist.Log zg = new Zeitgeist.Log ();
zg.get_events (ids, null, (obj, res) => {
- GenericArray<Zeitgeist.Event?> events = zg.get_events.end (res);
- for (int i = 0; i < events.length; ++i)
+ var events = zg.get_events.end (res);
+ for (int i = 0; i < events.size(); ++i)
{
- Zeitgeist.Event event = events[i];
+ Zeitgeist.Event event = events.next_value();
if (event != null)
stdout.printf ("First subject: %s\n", event.subjects[0].uri);
else
diff --git a/libzeitgeist/log.vala b/libzeitgeist/log.vala
index 67dc0238..fa23efb5 100644
--- a/libzeitgeist/log.vala
+++ b/libzeitgeist/log.vala
@@ -137,11 +137,14 @@ public class Log : QueuedProxyWrapper
* @param events An {@link GenericArray} of {@link Event}
* @param cancellable To cancel the operation or NULL
*/
- public async Array<uint32> insert_events (owned GenericArray<Event> events,
+ public async Array<uint32> insert_events (GenericArray<Event> events,
Cancellable? cancellable=null) throws Error
{
+ var events_cp = new GenericArray<Event>();
+ for (int i = 0; i < events.length; i++)
+ events_cp.add(events.get(i));
yield wait_for_proxy ();
- uint32[] ids = yield proxy.insert_events (Events.to_variant (events), cancellable);
+ uint32[] ids = yield proxy.insert_events (Events.to_variant (events_cp), cancellable);
var result = new Array<uint32> ();
// Ideally we'd just place "(owned) ids" into the GArray, but .data isn't
// in the Vala bindings...
@@ -178,7 +181,7 @@ public class Log : QueuedProxyWrapper
*
* @param events An {@link GenericArray} of {@link Event}
*/
- public async void insert_events_no_reply (owned GenericArray<Event> events)
+ public async void insert_events_no_reply (GenericArray<Event> events)
throws Error
{
yield insert_events (events);
@@ -210,15 +213,18 @@ public class Log : QueuedProxyWrapper
*/
public async ResultSet find_events (
TimeRange time_range,
- owned GenericArray<Event> event_templates,
+ GenericArray<Event> event_templates,
StorageState storage_state,
uint32 num_events,
ResultType result_type,
Cancellable? cancellable=null) throws Error
{
+ var event_templates_cp = new GenericArray<Event>();
+ for (int i = 0; i < event_templates.length; i++)
+ event_templates_cp.add(event_templates.get(i));
yield wait_for_proxy ();
var result = yield proxy.find_events (time_range.to_variant (),
- Events.to_variant (event_templates), storage_state,
+ Events.to_variant (event_templates_cp), storage_state,
num_events, result_type, cancellable);
return new SimpleResultSet (Events.from_variant (result));
}
@@ -247,15 +253,18 @@ public class Log : QueuedProxyWrapper
*/
public async uint32[] find_event_ids (
TimeRange time_range,
- owned GenericArray<Event> event_templates,
+ GenericArray<Event> event_templates,
StorageState storage_state,
uint32 num_events,
ResultType result_type,
Cancellable? cancellable=null) throws Error
{
+ var event_templates_cp = new GenericArray<Event>();
+ for (int i = 0; i < event_templates.length; i++)
+ event_templates_cp.add(event_templates.get(i));
yield wait_for_proxy ();
return yield proxy.find_event_ids (time_range.to_variant (),
- Events.to_variant (event_templates), storage_state,
+ Events.to_variant (event_templates_cp), storage_state,
num_events, result_type, cancellable);
}
@@ -276,13 +285,13 @@ public class Log : QueuedProxyWrapper
* @param cancellable To cancel the operation or NULL
*/
public async ResultSet get_events (
- owned Array<uint32> event_ids,
+ Array<uint32> event_ids,
Cancellable? cancellable=null) throws Error
{
uint32[] simple_event_ids = new uint32[event_ids.length];
- yield wait_for_proxy ();
for (int i = 0; i < event_ids.length; i++)
simple_event_ids[i] = event_ids.index (i);
+ yield wait_for_proxy ();
var result = yield proxy.get_events (simple_event_ids, cancellable);
return new SimpleResultSet(Events.from_variant (result));
}
@@ -304,17 +313,25 @@ public class Log : QueuedProxyWrapper
*/
public async string[] find_related_uris (
TimeRange time_range,
- owned GenericArray<Event> event_templates,
- owned GenericArray<Event> result_event_templates,
+ GenericArray<Event> event_templates,
+ GenericArray<Event> result_event_templates,
StorageState storage_state,
uint32 num_events,
ResultType result_type,
Cancellable? cancellable=null) throws Error
{
+ var events_cp = new GenericArray<Event>();
+ for (int i = 0; i < event_templates.length; i++)
+ events_cp.add(event_templates.get(i));
+
+ var results_cp = new GenericArray<Event>();
+ for (int i = 0; i < result_event_templates.length; i++)
+ results_cp.add(result_event_templates.get(i));
+
yield wait_for_proxy ();
return yield proxy.find_related_uris (time_range.to_variant (),
- Events.to_variant (event_templates),
- Events.to_variant (result_event_templates),
+ Events.to_variant (events_cp),
+ Events.to_variant (results_cp),
storage_state, num_events, result_type, cancellable);
}
@@ -326,13 +343,13 @@ public class Log : QueuedProxyWrapper
*
* @param event_ids Array<uint32>
*/
- public async TimeRange delete_events (owned Array<uint32> event_ids,
+ public async TimeRange delete_events (Array<uint32> event_ids,
Cancellable? cancellable=null) throws Error
{
- yield wait_for_proxy ();
uint32[] _ids = new uint32 [event_ids.length];
for (int i=0; i<event_ids.length; i++)
_ids[i] = event_ids.index(i);
+ yield wait_for_proxy ();
Variant time_range = yield proxy.delete_events (_ids, cancellable);
return new TimeRange.from_variant(time_range);
}
@@ -350,7 +367,7 @@ public class Log : QueuedProxyWrapper
*
* @param monitor A {@link Monitor} to report back inserts and deletes
*/
- public void install_monitor (owned Monitor monitor) throws Error
+ public void install_monitor (Monitor monitor) throws Error
{
// FIXME
//monitor.destroy.connect (() => {});