Fix: don't use time_t as property in GLib.Object.

This isn't actually supported by GLib and as such is going to be
checked on a stricter basis by valac. Together with --fatal-warnings,
this gives errors on newer valac versions.
This commit is contained in:
Niels De Graef 2017-09-15 00:12:01 +02:00
parent 825a33d11c
commit 383ee15992
3 changed files with 9 additions and 5 deletions

View file

@ -295,7 +295,7 @@ private class Geary.ImapDB.Database : Geary.Db.VersionedDatabase {
try {
time_t as_time_t = (internaldate != null ?
Geary.Imap.InternalDate.decode(internaldate).as_time_t : -1);
Geary.Imap.InternalDate.decode(internaldate).to_time_t() : -1);
Db.Statement update = cx.prepare(
"UPDATE MessageTable SET internaldate_time_t=? WHERE id=?");

View file

@ -246,7 +246,7 @@ private class Geary.ImapDB.MessageRow {
if (email.fields.is_all_set(Geary.Email.Field.PROPERTIES)) {
Geary.Imap.EmailProperties? imap_properties = (Geary.Imap.EmailProperties) email.properties;
internaldate = (imap_properties != null) ? imap_properties.internaldate.serialize() : null;
internaldate_time_t = (imap_properties != null) ? imap_properties.internaldate.as_time_t : -1;
internaldate_time_t = (imap_properties != null) ? imap_properties.internaldate.to_time_t() : -1;
rfc822_size = (imap_properties != null) ? imap_properties.rfc822_size.value : -1;
fields = fields.set(Geary.Email.Field.PROPERTIES);

View file

@ -28,18 +28,15 @@ public class Geary.Imap.InternalDate : Geary.MessageData.AbstractMessageData, Ge
};
public DateTime value { get; private set; }
public time_t as_time_t { get; private set; }
public string? original { get; private set; default = null; }
private InternalDate(string original, DateTime datetime) {
this.original = original;
value = datetime;
as_time_t = Time.datetime_to_time_t(datetime);
}
public InternalDate.from_date_time(DateTime datetime) throws ImapError {
value = datetime;
as_time_t = Time.datetime_to_time_t(datetime);
}
public static InternalDate decode(string internaldate) throws ImapError {
@ -93,6 +90,13 @@ public class Geary.Imap.InternalDate : Geary.MessageData.AbstractMessageData, Ge
return new InternalDate(internaldate, datetime);
}
/**
* Returns the value of the InternalDate as a time_t representation.
*/
public time_t to_time_t () {
return Time.datetime_to_time_t(this.value);
}
/**
* Returns the {@link InternalDate} as a {@link Parameter}.