From: Kouhei S. <nu...@co...> - 2013-03-28 13:49:39
|
Kouhei Sutou 2013-03-28 22:49:11 +0900 (Thu, 28 Mar 2013) New Revision: 9090b98fce94c9b2677d865aa7b2215ffcc6050c https://github.com/ruby-gnome2/ruby-gnome2/commit/9090b98fce94c9b2677d865aa7b2215ffcc6050c Message: glib2: don't use deprecated function g_source_get_current_time() -> g_source_get_time() g_source_get_current_time() is deprecated since 2.28. Added files: glib2/test/test_source.rb Modified files: glib2/ext/glib2/rbglib_source.c Modified: glib2/ext/glib2/rbglib_source.c (+9 -6) =================================================================== --- glib2/ext/glib2/rbglib_source.c 2013-03-28 22:36:18 +0900 (78983e8) +++ glib2/ext/glib2/rbglib_source.c 2013-03-28 22:49:11 +0900 (c2e2e04) @@ -148,14 +148,15 @@ rg_remove_poll(VALUE self, VALUE fd) return self; } +#if GLIB_CHECK_VERSION(2, 28, 0) static VALUE -rg_current_time(VALUE self) +rg_time(VALUE self) { - GTimeVal timeval; - g_source_get_current_time(_SELF(self), &timeval); - - return rb_assoc_new(LONG2NUM(timeval.tv_sec), LONG2NUM(timeval.tv_usec)); + gint64 time; + time = g_source_get_time(_SELF(self)); + return LL2NUM(time); } +#endif /* How can I implement them ? gboolean g_source_remove_by_funcs_user_data @@ -189,7 +190,9 @@ Init_glib_source(void) RG_DEF_METHOD(set_callback, 0); RG_DEF_METHOD(add_poll, 1); RG_DEF_METHOD(remove_poll, 1); - RG_DEF_METHOD(current_time, 0); +#if GLIB_CHECK_VERSION(2, 28, 0) + RG_DEF_METHOD(time, 0); +#endif /* GLib::Source.remove is moved to rbglib_maincontext.c */ } Added: glib2/test/test_source.rb (+29 -0) 100644 =================================================================== --- /dev/null +++ glib2/test/test_source.rb 2013-03-28 22:49:11 +0900 (ee932db) @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013 Ruby-GNOME2 Project Team +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +class TestGLibSource < Test::Unit::TestCase + include GLibTestUtils + + def test_time + context = GLib::MainContext.default + source = GLib::Idle.source_new + source.attach(context) + time = source.time + assert_operator(0, :<, time) + end +end |