glib2 2.2.3 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +44 -19
- data/ext/glib2/extconf.rb +1 -1
- data/ext/glib2/glib-enum-types.c +1233 -0
- data/ext/glib2/glib-enum-types.h +154 -0
- data/ext/glib2/rbglib.c +2 -2
- data/ext/glib2/rbglib.h +1 -1
- data/ext/glib2/rbglib2conversions.h +2 -0
- data/ext/glib2/rbglib_fileutils.c +25 -0
- data/ext/glib2/rbglib_source.c +50 -2
- data/ext/glib2/rbglib_threads.c +1 -1
- data/ext/glib2/rbglib_utils.c +8 -3
- data/ext/glib2/rbgobj_convert.c +12 -9
- data/lib/glib2/deprecatable.rb +25 -21
- data/lib/gnome2/rake/native-binary-build-task.rb +4 -2
- data/lib/gnome2/rake/package-task.rb +31 -30
- data/lib/gnome2/rake/package.rb +9 -0
- data/lib/gnome2/rake/{win32-binary-build-task.rb → windows-binary-build-task.rb} +26 -24
- data/lib/gnome2/rake/{win32-binary-download-task.rb → windows-binary-download-task.rb} +20 -14
- data/lib/mkmf-gnome2.rb +27 -3
- data/test/test_file_utils.rb +38 -0
- data/test/test_source.rb +37 -3
- metadata +6 -4
@@ -0,0 +1,154 @@
|
|
1
|
+
|
2
|
+
/* Generated by glib-mkenums.rb ($Id$) */
|
3
|
+
|
4
|
+
#ifndef __GLIB_ENUM_TYPES_H__
|
5
|
+
#define __GLIB_ENUM_TYPES_H__
|
6
|
+
|
7
|
+
#include <glib-object.h>
|
8
|
+
|
9
|
+
G_BEGIN_DECLS
|
10
|
+
|
11
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gvariant.h" */
|
12
|
+
GType g_variant_class_get_type (void);
|
13
|
+
#define G_TYPE_VARIANT_CLASS (g_variant_class_get_type())
|
14
|
+
GType g_variant_parse_error_get_type (void);
|
15
|
+
#define G_TYPE_VARIANT_PARSE_ERROR (g_variant_parse_error_get_type())
|
16
|
+
|
17
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gspawn.h" */
|
18
|
+
GType g_spawn_error_get_type (void);
|
19
|
+
#define G_TYPE_SPAWN_ERROR (g_spawn_error_get_type())
|
20
|
+
GType g_spawn_flags_get_type (void);
|
21
|
+
#define G_TYPE_SPAWN_FLAGS (g_spawn_flags_get_type())
|
22
|
+
|
23
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gkeyfile.h" */
|
24
|
+
GType g_key_file_error_get_type (void);
|
25
|
+
#define G_TYPE_KEY_FILE_ERROR (g_key_file_error_get_type())
|
26
|
+
GType g_key_file_flags_get_type (void);
|
27
|
+
#define G_TYPE_KEY_FILE_FLAGS (g_key_file_flags_get_type())
|
28
|
+
|
29
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gnode.h" */
|
30
|
+
GType g_traverse_flags_get_type (void);
|
31
|
+
#define G_TYPE_TRAVERSE_FLAGS (g_traverse_flags_get_type())
|
32
|
+
GType g_traverse_type_get_type (void);
|
33
|
+
#define G_TYPE_TRAVERSE_TYPE (g_traverse_type_get_type())
|
34
|
+
|
35
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gshell.h" */
|
36
|
+
GType g_shell_error_get_type (void);
|
37
|
+
#define G_TYPE_SHELL_ERROR (g_shell_error_get_type())
|
38
|
+
|
39
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gslice.h" */
|
40
|
+
GType g_slice_config_get_type (void);
|
41
|
+
#define G_TYPE_SLICE_CONFIG (g_slice_config_get_type())
|
42
|
+
|
43
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gregex.h" */
|
44
|
+
GType g_regex_error_get_type (void);
|
45
|
+
#define G_TYPE_REGEX_ERROR (g_regex_error_get_type())
|
46
|
+
GType g_regex_compile_flags_get_type (void);
|
47
|
+
#define G_TYPE_REGEX_COMPILE_FLAGS (g_regex_compile_flags_get_type())
|
48
|
+
GType g_regex_match_flags_get_type (void);
|
49
|
+
#define G_TYPE_REGEX_MATCH_FLAGS (g_regex_match_flags_get_type())
|
50
|
+
|
51
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gmarkup.h" */
|
52
|
+
GType g_markup_error_get_type (void);
|
53
|
+
#define G_TYPE_MARKUP_ERROR (g_markup_error_get_type())
|
54
|
+
GType g_markup_parse_flags_get_type (void);
|
55
|
+
#define G_TYPE_MARKUP_PARSE_FLAGS (g_markup_parse_flags_get_type())
|
56
|
+
GType g_markup_collect_type_get_type (void);
|
57
|
+
#define G_TYPE_MARKUP_COLLECT_TYPE (g_markup_collect_type_get_type())
|
58
|
+
|
59
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gtestutils.h" */
|
60
|
+
GType g_test_trap_flags_get_type (void);
|
61
|
+
#define G_TYPE_TEST_TRAP_FLAGS (g_test_trap_flags_get_type())
|
62
|
+
GType g_test_subprocess_flags_get_type (void);
|
63
|
+
#define G_TYPE_TEST_SUBPROCESS_FLAGS (g_test_subprocess_flags_get_type())
|
64
|
+
GType g_test_log_type_get_type (void);
|
65
|
+
#define G_TYPE_TEST_LOG_TYPE (g_test_log_type_get_type())
|
66
|
+
GType g_test_file_type_get_type (void);
|
67
|
+
#define G_TYPE_TEST_FILE_TYPE (g_test_file_type_get_type())
|
68
|
+
|
69
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gfileutils.h" */
|
70
|
+
GType g_file_error_get_type (void);
|
71
|
+
#define G_TYPE_FILE_ERROR (g_file_error_get_type())
|
72
|
+
GType g_file_test_get_type (void);
|
73
|
+
#define G_TYPE_FILE_TEST (g_file_test_get_type())
|
74
|
+
|
75
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gtimezone.h" */
|
76
|
+
GType g_time_type_get_type (void);
|
77
|
+
#define G_TYPE_TIME_TYPE (g_time_type_get_type())
|
78
|
+
|
79
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gdate.h" */
|
80
|
+
GType g_date_dm_y_get_type (void);
|
81
|
+
#define G_TYPE_DATE_DM_Y (g_date_dm_y_get_type())
|
82
|
+
GType g_date_weekday_get_type (void);
|
83
|
+
#define G_TYPE_DATE_WEEKDAY (g_date_weekday_get_type())
|
84
|
+
GType g_date_month_get_type (void);
|
85
|
+
#define G_TYPE_DATE_MONTH (g_date_month_get_type())
|
86
|
+
|
87
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gunicode.h" */
|
88
|
+
GType g_unicode_type_get_type (void);
|
89
|
+
#define G_TYPE_UNICODE_TYPE (g_unicode_type_get_type())
|
90
|
+
GType g_unicode_break_type_get_type (void);
|
91
|
+
#define G_TYPE_UNICODE_BREAK_TYPE (g_unicode_break_type_get_type())
|
92
|
+
GType g_unicode_script_get_type (void);
|
93
|
+
#define G_TYPE_UNICODE_SCRIPT (g_unicode_script_get_type())
|
94
|
+
GType g_normalize_mode_get_type (void);
|
95
|
+
#define G_TYPE_NORMALIZE_MODE (g_normalize_mode_get_type())
|
96
|
+
|
97
|
+
/* enumerations from "/usr/include/glib-2.0/glib/ghook.h" */
|
98
|
+
GType g_hook_flag_mask_get_type (void);
|
99
|
+
#define G_TYPE_HOOK_FLAG_MASK (g_hook_flag_mask_get_type())
|
100
|
+
|
101
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gthread.h" */
|
102
|
+
GType g_thread_error_get_type (void);
|
103
|
+
#define G_TYPE_THREAD_ERROR (g_thread_error_get_type())
|
104
|
+
GType g_once_status_get_type (void);
|
105
|
+
#define G_TYPE_ONCE_STATUS (g_once_status_get_type())
|
106
|
+
|
107
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gstrfuncs.h" */
|
108
|
+
GType g_ascii_type_get_type (void);
|
109
|
+
#define G_TYPE_ASCII_TYPE (g_ascii_type_get_type())
|
110
|
+
|
111
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gmessages.h" */
|
112
|
+
GType g_log_level_flags_get_type (void);
|
113
|
+
#define G_TYPE_LOG_LEVEL_FLAGS (g_log_level_flags_get_type())
|
114
|
+
|
115
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gchecksum.h" */
|
116
|
+
GType g_checksum_type_get_type (void);
|
117
|
+
#define G_TYPE_CHECKSUM_TYPE (g_checksum_type_get_type())
|
118
|
+
|
119
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gutils.h" */
|
120
|
+
GType g_user_directory_get_type (void);
|
121
|
+
#define G_TYPE_USER_DIRECTORY (g_user_directory_get_type())
|
122
|
+
GType g_format_size_flags_get_type (void);
|
123
|
+
#define G_TYPE_FORMAT_SIZE_FLAGS (g_format_size_flags_get_type())
|
124
|
+
|
125
|
+
/* enumerations from "/usr/include/glib-2.0/glib/goption.h" */
|
126
|
+
GType g_option_flags_get_type (void);
|
127
|
+
#define G_TYPE_OPTION_FLAGS (g_option_flags_get_type())
|
128
|
+
GType g_option_arg_get_type (void);
|
129
|
+
#define G_TYPE_OPTION_ARG (g_option_arg_get_type())
|
130
|
+
GType g_option_error_get_type (void);
|
131
|
+
#define G_TYPE_OPTION_ERROR (g_option_error_get_type())
|
132
|
+
|
133
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gconvert.h" */
|
134
|
+
GType g_convert_error_get_type (void);
|
135
|
+
#define G_TYPE_CONVERT_ERROR (g_convert_error_get_type())
|
136
|
+
|
137
|
+
/* enumerations from "/usr/include/glib-2.0/glib/gbookmarkfile.h" */
|
138
|
+
GType g_bookmark_file_error_get_type (void);
|
139
|
+
#define G_TYPE_BOOKMARK_FILE_ERROR (g_bookmark_file_error_get_type())
|
140
|
+
|
141
|
+
/* enumerations from "/usr/include/glib-2.0/gobject/gsignal.h" */
|
142
|
+
GType g_signal_flags_get_type (void);
|
143
|
+
#define G_TYPE_SIGNAL_FLAGS (g_signal_flags_get_type())
|
144
|
+
GType g_connect_flags_get_type (void);
|
145
|
+
#define G_TYPE_CONNECT_FLAGS (g_connect_flags_get_type())
|
146
|
+
GType g_signal_match_type_get_type (void);
|
147
|
+
#define G_TYPE_SIGNAL_MATCH_TYPE (g_signal_match_type_get_type())
|
148
|
+
|
149
|
+
G_END_DECLS
|
150
|
+
|
151
|
+
#endif /* __GLIB_ENUM_TYPES_H__ */
|
152
|
+
|
153
|
+
/* Generated data ends here */
|
154
|
+
|
data/ext/glib2/rbglib.c
CHANGED
@@ -912,14 +912,14 @@ So they occur "cross-thread violation".
|
|
912
912
|
static gpointer
|
913
913
|
my_malloc(gsize n_bytes)
|
914
914
|
{
|
915
|
-
/* Should we rescue NoMemoryError? */
|
915
|
+
/* Should we rescue NoMemoryError? */
|
916
916
|
return ruby_xmalloc(n_bytes);
|
917
917
|
}
|
918
918
|
|
919
919
|
static gpointer
|
920
920
|
my_realloc(gpointer mem, gsize n_bytes)
|
921
921
|
{
|
922
|
-
/* Should we rescue NoMemoryError? */
|
922
|
+
/* Should we rescue NoMemoryError? */
|
923
923
|
return ruby_xrealloc(mem, n_bytes);
|
924
924
|
}
|
925
925
|
|
data/ext/glib2/rbglib.h
CHANGED
@@ -52,4 +52,6 @@
|
|
52
52
|
#define RVAL2GKEYFILEFLAGS(o) (RVAL2GFLAGS(o, G_TYPE_KEY_FILE_FLAGS))
|
53
53
|
#define GKEYFILEFLAGS2RVAL(o) (GFLAGS2RVAL(o, G_TYPE_KEY_FILE_FLAGS))
|
54
54
|
|
55
|
+
#define RVAL2GFORMATSIZEFLAGS(o) (RVAL2GFLAGS(o, G_TYPE_FORMAT_SIZE_FLAGS))
|
56
|
+
#define GFORMATSIZEFLAGS2RVAL(o) (GFLAGS2RVAL(o, G_TYPE_FORMAT_SIZE_FLAGS))
|
55
57
|
#endif /* __GLIB2CONVERSIONS_H__ */
|
@@ -57,6 +57,27 @@ rbglib_m_format_size_for_display(G_GNUC_UNUSED VALUE self, VALUE size)
|
|
57
57
|
}
|
58
58
|
#endif
|
59
59
|
|
60
|
+
#if GLIB_CHECK_VERSION(2, 30, 0)
|
61
|
+
static VALUE
|
62
|
+
rbglib_m_format_size(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
|
63
|
+
{
|
64
|
+
VALUE rb_size, rb_options;
|
65
|
+
|
66
|
+
rb_scan_args(argc, argv, "11", &rb_size, &rb_options);
|
67
|
+
if (NIL_P(rb_options)) {
|
68
|
+
return CSTR2RVAL_FREE(g_format_size(NUM2UINT(rb_size)));
|
69
|
+
} else {
|
70
|
+
VALUE rb_flags;
|
71
|
+
rbg_scan_options(rb_options,
|
72
|
+
"flags", &rb_flags,
|
73
|
+
NULL);
|
74
|
+
|
75
|
+
return CSTR2RVAL_FREE(g_format_size_full(NUM2UINT(rb_size),
|
76
|
+
RVAL2GFORMATSIZEFLAGS(rb_flags)));
|
77
|
+
}
|
78
|
+
}
|
79
|
+
#endif
|
80
|
+
|
60
81
|
void
|
61
82
|
Init_glib_fileutils(void)
|
62
83
|
{
|
@@ -91,4 +112,8 @@ Init_glib_fileutils(void)
|
|
91
112
|
rbg_define_singleton_method(mGLib, "format_size_for_display",
|
92
113
|
rbglib_m_format_size_for_display, 1);
|
93
114
|
#endif
|
115
|
+
#if GLIB_CHECK_VERSION(2, 30, 0)
|
116
|
+
rbg_define_singleton_method(mGLib, "format_size",
|
117
|
+
rbglib_m_format_size, -1);
|
118
|
+
#endif
|
94
119
|
}
|
data/ext/glib2/rbglib_source.c
CHANGED
@@ -63,6 +63,13 @@ rg_attach(int argc, VALUE *argv, VALUE self)
|
|
63
63
|
RVAL2BOXED(context, G_TYPE_MAIN_CONTEXT)));
|
64
64
|
}
|
65
65
|
|
66
|
+
static VALUE
|
67
|
+
rg_destroy(VALUE self)
|
68
|
+
{
|
69
|
+
g_source_destroy(_SELF(self));
|
70
|
+
return self;
|
71
|
+
}
|
72
|
+
|
66
73
|
static VALUE
|
67
74
|
rg_destroyed_p(VALUE self)
|
68
75
|
{
|
@@ -101,6 +108,21 @@ rg_id(VALUE self)
|
|
101
108
|
return UINT2NUM(g_source_get_id(_SELF(self)));
|
102
109
|
}
|
103
110
|
|
111
|
+
#if GLIB_CHECK_VERSION(2, 26, 0)
|
112
|
+
static VALUE
|
113
|
+
rg_name(VALUE self)
|
114
|
+
{
|
115
|
+
return CSTR2RVAL(g_source_get_name(_SELF(self)));
|
116
|
+
}
|
117
|
+
|
118
|
+
static VALUE
|
119
|
+
rg_set_name(VALUE self, VALUE name)
|
120
|
+
{
|
121
|
+
g_source_set_name(_SELF(self), RVAL2CSTR(name));
|
122
|
+
return self;
|
123
|
+
}
|
124
|
+
#endif
|
125
|
+
|
104
126
|
static VALUE
|
105
127
|
rg_context(VALUE self)
|
106
128
|
{
|
@@ -121,7 +143,7 @@ rg_set_callback(VALUE self)
|
|
121
143
|
G_RELATIVE(self, func);
|
122
144
|
g_source_set_callback(_SELF(self),
|
123
145
|
(GSourceFunc)source_func,
|
124
|
-
(gpointer)func,
|
146
|
+
(gpointer)func,
|
125
147
|
(GDestroyNotify)NULL);
|
126
148
|
return self;
|
127
149
|
}
|
@@ -132,6 +154,23 @@ void g_source_set_callback_indirect (GSource *source,
|
|
132
154
|
GSourceCallbackFuncs *callback_funcs);
|
133
155
|
*/
|
134
156
|
|
157
|
+
#if GLIB_CHECK_VERSION(2, 36, 0)
|
158
|
+
static VALUE
|
159
|
+
rg_ready_time(VALUE self)
|
160
|
+
{
|
161
|
+
gint64 ready_time;
|
162
|
+
ready_time = g_source_get_ready_time(_SELF(self));
|
163
|
+
return LL2NUM(ready_time);
|
164
|
+
}
|
165
|
+
|
166
|
+
static VALUE
|
167
|
+
rg_set_ready_time(VALUE self, VALUE ready_time)
|
168
|
+
{
|
169
|
+
g_source_set_ready_time(_SELF(self), NUM2LL(ready_time));
|
170
|
+
return self;
|
171
|
+
}
|
172
|
+
#endif
|
173
|
+
|
135
174
|
static VALUE
|
136
175
|
rg_add_poll(VALUE self, VALUE fd)
|
137
176
|
{
|
@@ -166,7 +205,7 @@ gboolean g_source_remove_by_user_data (gpointer user_data);
|
|
166
205
|
void
|
167
206
|
Init_glib_source(void)
|
168
207
|
{
|
169
|
-
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_SOURCE, "Source", mGLib);
|
208
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_SOURCE, "Source", mGLib);
|
170
209
|
|
171
210
|
id_call = rb_intern("call");
|
172
211
|
|
@@ -176,14 +215,23 @@ Init_glib_source(void)
|
|
176
215
|
"CONTINUE", CBOOL2RVAL(G_SOURCE_CONTINUE));
|
177
216
|
|
178
217
|
RG_DEF_METHOD(attach, -1);
|
218
|
+
RG_DEF_METHOD(destroy, 0);
|
179
219
|
RG_DEF_METHOD_P(destroyed, 0);
|
180
220
|
RG_DEF_METHOD(set_priority, 1);
|
181
221
|
RG_DEF_METHOD(priority, 0);
|
182
222
|
RG_DEF_METHOD(set_can_recurse, 1);
|
183
223
|
RG_DEF_METHOD_P(can_recurse, 0);
|
184
224
|
RG_DEF_METHOD(id, 0);
|
225
|
+
#if GLIB_CHECK_VERSION(2, 26, 0)
|
226
|
+
RG_DEF_METHOD(name, 0);
|
227
|
+
RG_REPLACE_SET_PROPERTY(name, 1);
|
228
|
+
#endif
|
185
229
|
RG_DEF_METHOD(context, 0);
|
186
230
|
RG_DEF_METHOD(set_callback, 0);
|
231
|
+
#if GLIB_CHECK_VERSION(2, 36, 0)
|
232
|
+
RG_DEF_METHOD(ready_time, 0);
|
233
|
+
RG_REPLACE_SET_PROPERTY(ready_time, 1);
|
234
|
+
#endif
|
187
235
|
RG_DEF_METHOD(add_poll, 1);
|
188
236
|
RG_DEF_METHOD(remove_poll, 1);
|
189
237
|
#if GLIB_CHECK_VERSION(2, 28, 0)
|
data/ext/glib2/rbglib_threads.c
CHANGED
data/ext/glib2/rbglib_utils.c
CHANGED
@@ -59,7 +59,7 @@ rg_s_getenv(G_GNUC_UNUSED VALUE self, VALUE variable)
|
|
59
59
|
static VALUE
|
60
60
|
rg_s_setenv(G_GNUC_UNUSED VALUE self, VALUE variable, VALUE value, VALUE overwrite)
|
61
61
|
{
|
62
|
-
return CBOOL2RVAL(g_setenv(RVAL2CSTR(variable),
|
62
|
+
return CBOOL2RVAL(g_setenv(RVAL2CSTR(variable),
|
63
63
|
RVAL2CSTR_ACCEPT_NIL(value),
|
64
64
|
RVAL2CBOOL(overwrite)));
|
65
65
|
}
|
@@ -277,9 +277,9 @@ static VALUE
|
|
277
277
|
rg_s_check_version_p(G_GNUC_UNUSED VALUE self, VALUE major, VALUE minor, VALUE micro)
|
278
278
|
{
|
279
279
|
return CBOOL2RVAL(glib_major_version > NUM2UINT(major) ||
|
280
|
-
(glib_major_version == NUM2UINT(major) &&
|
280
|
+
(glib_major_version == NUM2UINT(major) &&
|
281
281
|
glib_minor_version > NUM2UINT(minor)) ||
|
282
|
-
(glib_major_version == NUM2UINT(major) &&
|
282
|
+
(glib_major_version == NUM2UINT(major) &&
|
283
283
|
glib_minor_version == NUM2UINT(minor) &&
|
284
284
|
glib_micro_version >= NUM2UINT(micro)));
|
285
285
|
}
|
@@ -293,6 +293,11 @@ Init_glib_utils(void)
|
|
293
293
|
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, G_TYPE_USER_DIRECTORY, "G_");
|
294
294
|
#endif
|
295
295
|
|
296
|
+
#if GLIB_CHECK_VERSION(2, 30, 0)
|
297
|
+
G_DEF_CLASS(G_TYPE_FORMAT_SIZE_FLAGS,
|
298
|
+
"FormatSizeFlags", RG_TARGET_NAMESPACE);
|
299
|
+
#endif
|
300
|
+
|
296
301
|
RG_DEF_SMETHOD(application_name, 0);
|
297
302
|
RG_DEF_SMETHOD(set_application_name, 1);
|
298
303
|
RG_DEF_SMETHOD(prgname, 0);
|
data/ext/glib2/rbgobj_convert.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
2
|
/*
|
3
|
-
* Copyright (C) 2011-
|
3
|
+
* Copyright (C) 2011-2014 Ruby-GNOME2 Project Team
|
4
4
|
* Copyright (C) 2006 Sjoerd Simons, Masao Mutoh
|
5
5
|
*
|
6
6
|
* This library is free software; you can redistribute it and/or
|
@@ -39,9 +39,9 @@ void
|
|
39
39
|
Init_gobject_convert(void)
|
40
40
|
{
|
41
41
|
/* TODO: unref the below tables on exit. */
|
42
|
-
tables = g_hash_table_new_full(
|
42
|
+
tables = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL,
|
43
43
|
rg_convert_table_free);
|
44
|
-
class_to_g_type_map = g_hash_table_new(
|
44
|
+
class_to_g_type_map = g_hash_table_new(g_direct_hash, g_direct_equal);
|
45
45
|
}
|
46
46
|
|
47
47
|
void
|
@@ -49,17 +49,20 @@ rbgobj_convert_define(const RGConvertTable *table)
|
|
49
49
|
{
|
50
50
|
RGConvertTable *copied_table;
|
51
51
|
copied_table = g_memdup(table, sizeof(RGConvertTable));
|
52
|
-
g_hash_table_insert(tables,
|
52
|
+
g_hash_table_insert(tables,
|
53
|
+
GUINT_TO_POINTER(copied_table->type),
|
54
|
+
copied_table);
|
53
55
|
if (copied_table->klass != Qfalse && !NIL_P(copied_table->klass)) {
|
54
56
|
g_hash_table_insert(class_to_g_type_map,
|
55
|
-
|
57
|
+
GUINT_TO_POINTER(copied_table->klass),
|
58
|
+
GUINT_TO_POINTER(copied_table->type));
|
56
59
|
}
|
57
60
|
}
|
58
61
|
|
59
62
|
RGConvertTable *
|
60
63
|
rbgobj_convert_lookup(GType type)
|
61
64
|
{
|
62
|
-
return g_hash_table_lookup(tables,
|
65
|
+
return g_hash_table_lookup(tables, GUINT_TO_POINTER(type));
|
63
66
|
}
|
64
67
|
|
65
68
|
gboolean
|
@@ -128,11 +131,11 @@ GType
|
|
128
131
|
rbgobj_convert_rvalue2gtype(VALUE value)
|
129
132
|
{
|
130
133
|
VALUE klass;
|
131
|
-
|
134
|
+
gpointer result;
|
132
135
|
|
133
136
|
klass = rb_class_of(value);
|
134
|
-
result = g_hash_table_lookup(class_to_g_type_map,
|
135
|
-
return result
|
137
|
+
result = g_hash_table_lookup(class_to_g_type_map, GUINT_TO_POINTER(klass));
|
138
|
+
return GPOINTER_TO_UINT(result);
|
136
139
|
}
|
137
140
|
|
138
141
|
gboolean
|
data/lib/glib2/deprecatable.rb
CHANGED
@@ -91,29 +91,33 @@ module GLib
|
|
91
91
|
private
|
92
92
|
|
93
93
|
def const_missing(deprecated_const)
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
94
|
+
new_const = (@@deprecated_const[self] || {})[deprecated_const.to_sym]
|
95
|
+
if new_const.nil?
|
96
|
+
return super
|
97
|
+
end
|
98
|
+
|
99
|
+
msg = "#{caller[0]}: '#{[name, deprecated_const].join('::')}' has been deprecated."
|
100
|
+
case new_const
|
101
|
+
when String, Symbol
|
102
|
+
new_const_val = constant_get(new_const)
|
103
|
+
case new_const_val
|
104
|
+
when GLib::Enum, GLib::Flags
|
105
|
+
alt = " or ':#{new_const_val.nick.gsub('-', '_')}'"
|
106
|
+
end
|
107
|
+
warn "#{msg} Use '#{new_const}'#{alt}."
|
108
|
+
return const_set(deprecated_const, new_const_val)
|
109
|
+
when Hash
|
110
|
+
if new_const[:raise]
|
111
|
+
raise DeprecatedError.new("#{msg} #{new_const[:raise]}")
|
112
|
+
elsif new_const[:warn]
|
113
|
+
warn "#{msg} #{new_const[:warn]}"
|
114
|
+
else
|
115
|
+
warn "#{msg} Don't use this constant anymore."
|
114
116
|
end
|
117
|
+
return
|
118
|
+
else
|
119
|
+
super
|
115
120
|
end
|
116
|
-
raise NameError.new("uninitialized constant #{[self, deprecated_const].join('::')}")
|
117
121
|
end
|
118
122
|
|
119
123
|
def constant_get(const)
|