7 Commits

Author SHA1 Message Date
5b0a2b33c1 Bug fix - house, aspect and antiscia lists were not freed correctly
After calling g_list_free_full(), the list must be set to NULL.
2013-09-18 21:55:49 +02:00
984ed5d527 Setting the time zone value now doesn't validate the Gregorian date 2013-09-18 21:54:52 +02:00
a790512f13 Fixed GsweTimestamp to comply with documentation
Although documentation states that an "empty" timestamp object has
the current date and time in the current time zone, it was not true.
2013-09-18 21:54:17 +02:00
a7dc5cb8c0 Fixed data/Makefile.am 2013-09-18 11:59:00 +02:00
8d3e16465d Incremented patch version 2013-09-18 11:55:40 +02:00
b7f7f0c02a Bug fix: gswe_moment_get_all_planets() didn't calculate planet positions before returning the list 2013-09-18 11:55:26 +02:00
7b28bb519c RPM spec file is now generated
Version number no longer needs to be updated
2013-09-18 11:54:05 +02:00
6 changed files with 21 additions and 13 deletions

1
.gitignore vendored
View File

@@ -80,6 +80,7 @@ src/gswe-enumtypes.c
src/gswe-enumtypes.h src/gswe-enumtypes.h
src/gswetest src/gswetest
/data/swe-glib.pc /data/swe-glib.pc
/data/swe-glib.spec
# Documentation related files # Documentation related files
/docs/reference/*/*.args /docs/reference/*/*.args

View File

@@ -1,6 +1,6 @@
m4_define([swe_glib_major_version], [1]) m4_define([swe_glib_major_version], [1])
m4_define([swe_glib_minor_version], [0]) m4_define([swe_glib_minor_version], [0])
m4_define([swe_glib_micro_version], [2]) m4_define([swe_glib_micro_version], [3])
m4_define([swe_glib_version], [swe_glib_major_version.swe_glib_minor_version.swe_glib_micro_version]) m4_define([swe_glib_version], [swe_glib_major_version.swe_glib_minor_version.swe_glib_micro_version])
m4_define([swe_glib_api_version], [swe_glib_major_version.0]) m4_define([swe_glib_api_version], [swe_glib_major_version.0])
@@ -58,5 +58,6 @@ AC_CONFIG_FILES([
docs/reference/swe-glib/version.xml docs/reference/swe-glib/version.xml
docs/reference/swe-glib/Makefile docs/reference/swe-glib/Makefile
data/swe-glib.pc data/swe-glib.pc
data/swe-glib.spec
]) ])
AC_OUTPUT AC_OUTPUT

View File

@@ -61,5 +61,5 @@ sweph_DATA = \
EXTRA_DIST = \ EXTRA_DIST = \
$(sweph_DATA) \ $(sweph_DATA) \
swe-glib-$(SWE_GLIB_VERSION).spec swe-glib.spec

View File

@@ -1,5 +1,5 @@
Name: swe-glib Name: swe-glib
Version: 1.0.2 Version: @SWE_GLIB_VERSION@
Release: 1%{?dist} Release: 1%{?dist}
Summary: A GLib style wrapper library around the Swiss Ephemeris library, created by Astrodienst. Summary: A GLib style wrapper library around the Swiss Ephemeris library, created by Astrodienst.

View File

@@ -535,6 +535,8 @@ gswe_moment_calculate_house_positions(GsweMoment *moment, GError **err)
if ((house_data->sign = g_hash_table_lookup(gswe_sign_info_table, GINT_TO_POINTER((gint)ceilf(cusps[i] / 30.0)))) == NULL) { if ((house_data->sign = g_hash_table_lookup(gswe_sign_info_table, GINT_TO_POINTER((gint)ceilf(cusps[i] / 30.0)))) == NULL) {
g_list_free_full(moment->priv->house_list, g_free); g_list_free_full(moment->priv->house_list, g_free);
moment->priv->house_list = NULL;
moment->priv->house_revision = 0;
g_set_error(err, GSWE_MOMENT_ERROR, GSWE_MOMENT_ERROR_UNKNOWN_SIGN, "Calculation brought an unknown sign"); g_set_error(err, GSWE_MOMENT_ERROR, GSWE_MOMENT_ERROR_UNKNOWN_SIGN, "Calculation brought an unknown sign");
return; return;
@@ -721,6 +723,8 @@ gswe_moment_calculate_all_planets(GsweMoment *moment)
GList * GList *
gswe_moment_get_all_planets(GsweMoment *moment) gswe_moment_get_all_planets(GsweMoment *moment)
{ {
gswe_moment_calculate_all_planets(moment);
return moment->priv->planet_list; return moment->priv->planet_list;
} }
@@ -1059,6 +1063,7 @@ gswe_moment_calculate_aspects(GsweMoment *moment)
gswe_moment_calculate_all_planets(moment); gswe_moment_calculate_all_planets(moment);
g_list_free_full(moment->priv->aspect_list, g_free); g_list_free_full(moment->priv->aspect_list, g_free);
moment->priv->aspect_list = NULL;
for (oplanet = moment->priv->planet_list; oplanet; oplanet = oplanet->next) { for (oplanet = moment->priv->planet_list; oplanet; oplanet = oplanet->next) {
for (iplanet = moment->priv->planet_list; iplanet; iplanet = iplanet->next) { for (iplanet = moment->priv->planet_list; iplanet; iplanet = iplanet->next) {
@@ -1213,6 +1218,7 @@ gswe_moment_calculate_antiscia(GsweMoment *moment)
gswe_moment_calculate_all_planets(moment); gswe_moment_calculate_all_planets(moment);
g_list_free_full(moment->priv->antiscia_list, g_free); g_list_free_full(moment->priv->antiscia_list, g_free);
moment->priv->antiscia_list = NULL;
for (oplanet = moment->priv->planet_list; oplanet; oplanet = oplanet->next) { for (oplanet = moment->priv->planet_list; oplanet; oplanet = oplanet->next) {
for (iplanet = moment->priv->planet_list; iplanet; iplanet = iplanet->next) { for (iplanet = moment->priv->planet_list; iplanet; iplanet = iplanet->next) {

View File

@@ -94,6 +94,7 @@ gswe_timestamp_class_init(GsweTimestampClass *klass)
{ {
GObjectClass *gobject_class = G_OBJECT_CLASS(klass); GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
GDateTime *local_time = g_date_time_new_now_local(); GDateTime *local_time = g_date_time_new_now_local();
GTimeZone *local_timezone = g_time_zone_new_local();
g_type_class_add_private(klass, sizeof(GsweTimestampPrivate)); g_type_class_add_private(klass, sizeof(GsweTimestampPrivate));
@@ -118,7 +119,7 @@ gswe_timestamp_class_init(GsweTimestampClass *klass)
* Otherwise, the values are recalculated only upon request (e.g. on * Otherwise, the values are recalculated only upon request (e.g. on
* calling gswe_timestamp_get_julian_day()). * calling gswe_timestamp_get_julian_day()).
*/ */
g_object_class_install_property(gobject_class, PROP_INSTANT_RECALC, g_param_spec_boolean("instant-recalc", "Instant recalculation", "Instantly recalculate values upon parameter change", FALSE, G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_INSTANT_RECALC, g_param_spec_boolean("instant-recalc", "Instant recalculation", "Instantly recalculate values upon parameter change", FALSE, G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
/** /**
* GsweTimestamp:gregorian-valid: * GsweTimestamp:gregorian-valid:
@@ -135,56 +136,56 @@ gswe_timestamp_class_init(GsweTimestampClass *klass)
* *
* The Gregorian year of the timestamp * The Gregorian year of the timestamp
*/ */
g_object_class_install_property(gobject_class, PROP_GREGORIAN_YEAR, g_param_spec_int("gregorian-year", "Gregorian year", "The year according to the Gregorian calendar", G_MININT, G_MAXINT, g_date_time_get_year(local_time), G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_GREGORIAN_YEAR, g_param_spec_int("gregorian-year", "Gregorian year", "The year according to the Gregorian calendar", G_MININT, G_MAXINT, g_date_time_get_year(local_time), G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
/** /**
* GsweTimestamp:gregorian-month: * GsweTimestamp:gregorian-month:
* *
* The Gregorian month of the timestamp * The Gregorian month of the timestamp
*/ */
g_object_class_install_property(gobject_class, PROP_GREGORIAN_MONTH, g_param_spec_int("gregorian-month", "Gregorian month", "The month according to the Gregorian calendar", 1, 12, g_date_time_get_month(local_time), G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_GREGORIAN_MONTH, g_param_spec_int("gregorian-month", "Gregorian month", "The month according to the Gregorian calendar", 1, 12, g_date_time_get_month(local_time), G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
/** /**
* GsweTimestamp:gregorian-day: * GsweTimestamp:gregorian-day:
* *
* The Gregorian day of the timestamp * The Gregorian day of the timestamp
*/ */
g_object_class_install_property(gobject_class, PROP_GREGORIAN_DAY, g_param_spec_int("gregorian-day", "Gregorian day", "The day according to the Gregorian calendar", 1, 31, g_date_time_get_day_of_month(local_time), G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_GREGORIAN_DAY, g_param_spec_int("gregorian-day", "Gregorian day", "The day according to the Gregorian calendar", 1, 31, g_date_time_get_day_of_month(local_time), G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
/** /**
* GsweTimestamp:gregorian-hour: * GsweTimestamp:gregorian-hour:
* *
* The Gregorian hour of the timestamp * The Gregorian hour of the timestamp
*/ */
g_object_class_install_property(gobject_class, PROP_GREGORIAN_HOUR, g_param_spec_int("gregorian-hour", "Gregorian hour", "The hour according to the Gregorian calendar", 0, 23, g_date_time_get_hour(local_time), G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_GREGORIAN_HOUR, g_param_spec_int("gregorian-hour", "Gregorian hour", "The hour according to the Gregorian calendar", 0, 23, g_date_time_get_hour(local_time), G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
/** /**
* GsweTimestamp:gregorian-minute: * GsweTimestamp:gregorian-minute:
* *
* The Gregorian minute of the timestamp * The Gregorian minute of the timestamp
*/ */
g_object_class_install_property(gobject_class, PROP_GREGORIAN_MINUTE, g_param_spec_int("gregorian-minute", "Gregorian minute", "The minute according to the Gregorian calendar", 0, 59, g_date_time_get_minute(local_time), G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_GREGORIAN_MINUTE, g_param_spec_int("gregorian-minute", "Gregorian minute", "The minute according to the Gregorian calendar", 0, 59, g_date_time_get_minute(local_time), G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
/** /**
* GsweTimestamp:gregorian-second: * GsweTimestamp:gregorian-second:
* *
* The Gregorian second of the timestamp * The Gregorian second of the timestamp
*/ */
g_object_class_install_property(gobject_class, PROP_GREGORIAN_SECOND, g_param_spec_int("gregorian-second", "Gregorian second", "The second according to the Gregorian calendar", 0, 61, g_date_time_get_second(local_time), G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_GREGORIAN_SECOND, g_param_spec_int("gregorian-second", "Gregorian second", "The second according to the Gregorian calendar", 0, 61, g_date_time_get_second(local_time), G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
/** /**
* GsweTimestamp:gregorian-microsecond: * GsweTimestamp:gregorian-microsecond:
* *
* The Gregorian microsecond of the timestamp * The Gregorian microsecond of the timestamp
*/ */
g_object_class_install_property(gobject_class, PROP_GREGORIAN_MICROSECOND, g_param_spec_int("gregorian-microsecond", "Gregorian microsecond", "The microsecond according to the Gregorian calendar", 0, G_MAXINT, g_date_time_get_microsecond(local_time), G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_GREGORIAN_MICROSECOND, g_param_spec_int("gregorian-microsecond", "Gregorian microsecond", "The microsecond according to the Gregorian calendar", 0, G_MAXINT, g_date_time_get_microsecond(local_time), G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
/** /**
* GsweTimestamp:gregorian-timezone-offset: * GsweTimestamp:gregorian-timezone-offset:
* *
* The time zone offset in hours, relative to UTC * The time zone offset in hours, relative to UTC
*/ */
g_object_class_install_property(gobject_class, PROP_GREGORIAN_TIMEZONE_OFFSET, g_param_spec_double("gregorian-timezone-offset", "Gregorian timezone offset", "The offset relative to UTC in the Gregorian calendar", -24.0, 24.0, 0.0, G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_GREGORIAN_TIMEZONE_OFFSET, g_param_spec_double("gregorian-timezone-offset", "Gregorian timezone offset", "The offset relative to UTC in the Gregorian calendar", -24.0, 24.0, g_time_zone_get_offset(local_timezone, 1) / 3600.0, G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
/** /**
* GsweTimestamp:julian-day-valid: * GsweTimestamp:julian-day-valid:
@@ -764,7 +765,6 @@ void
gswe_timestamp_set_gregorian_timezone(GsweTimestamp *timestamp, gdouble gregorian_timezone_offset, GError **err) gswe_timestamp_set_gregorian_timezone(GsweTimestamp *timestamp, gdouble gregorian_timezone_offset, GError **err)
{ {
timestamp->priv->gregorian_timezone_offset = gregorian_timezone_offset; timestamp->priv->gregorian_timezone_offset = gregorian_timezone_offset;
timestamp->priv->valid_dates = VALID_GREGORIAN;
if (timestamp->priv->instant_recalc == TRUE) { if (timestamp->priv->instant_recalc == TRUE) {
gswe_timestamp_calculate_all(timestamp, err); gswe_timestamp_calculate_all(timestamp, err);