glib2 4.2.4 → 4.2.5
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 +2 -2
- data/ext/glib2/glib2.def +0 -1
- data/ext/glib2/rbglib.c +0 -1
- data/ext/glib2/rbglib.h +12 -45
- data/ext/glib2/rbglib_int64.c +9 -125
- data/ext/glib2/rbgobj_type.c +2 -2
- data/ext/glib2/rbgobj_value.c +1 -1
- data/ext/glib2/rbgprivate.h +0 -1
- data/test/test-glib2.rb +7 -6
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ce8e0b69eabe0515d6f899e3811fa77ac794481531500e84fdea9fb33b28fec
|
4
|
+
data.tar.gz: 4ab29fea64953b54d7d903bef16ec0572276b4f892312f475b37af8eb70ef246
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1af9b09699eeeff8fbce562c64be5c19514b4ce0d59a9d0ff7798b5c675215e54a853a7d6546b1f21aac122150256ed48714f2cd9b883f564a1a2d775367dce2
|
7
|
+
data.tar.gz: '079135b962c74881c9a24e110dae2de86792281817321ff42ee96dfabe34741b1a815e386043de63c8b647c110cb5718a7a5a3268e65ca7af06ceca6daa3a346'
|
data/Rakefile
CHANGED
@@ -19,10 +19,10 @@
|
|
19
19
|
base_dir = __dir__
|
20
20
|
|
21
21
|
$LOAD_PATH.unshift(File.join(base_dir, "lib"))
|
22
|
-
require "
|
22
|
+
require "gnome/rake/package-task"
|
23
23
|
|
24
24
|
package_name = File.basename(base_dir)
|
25
25
|
spec = Gem::Specification.load(File.join(base_dir, "#{package_name}.gemspec"))
|
26
26
|
|
27
|
-
|
27
|
+
GNOME::Rake::PackageTask.define(spec, __dir__) do |package|
|
28
28
|
end
|
data/ext/glib2/glib2.def
CHANGED
data/ext/glib2/rbglib.c
CHANGED
data/ext/glib2/rbglib.h
CHANGED
@@ -33,49 +33,14 @@ G_BEGIN_DECLS
|
|
33
33
|
|
34
34
|
#define RBGLIB_MAJOR_VERSION 4
|
35
35
|
#define RBGLIB_MINOR_VERSION 2
|
36
|
-
#define RBGLIB_MICRO_VERSION
|
36
|
+
#define RBGLIB_MICRO_VERSION 5
|
37
37
|
|
38
|
-
|
39
|
-
#
|
40
|
-
#
|
41
|
-
# else
|
42
|
-
# define RB_ZALLOC(type) rbg_memzero(ALLOC(type), sizeof(type))
|
43
|
-
# endif
|
38
|
+
/* For Ruby < 3.0 */
|
39
|
+
#ifndef RB_LL2NUM
|
40
|
+
# define RB_LL2NUM LL2NUM
|
44
41
|
#endif
|
45
|
-
|
46
|
-
#
|
47
|
-
# define RB_ALLOC(type) ALLOC(type)
|
48
|
-
#endif
|
49
|
-
|
50
|
-
#ifndef RB_ALLOC_N
|
51
|
-
# define RB_ALLOC_N(type, n) ALLOC_N(type, n)
|
52
|
-
#endif
|
53
|
-
|
54
|
-
/* For Ruby < 2.3 */
|
55
|
-
#ifndef RB_OBJ_FROZEN
|
56
|
-
# define RB_OBJ_FROZEN(obj) OBJ_FROZEN(obj)
|
57
|
-
#endif
|
58
|
-
|
59
|
-
#ifndef RSTRING_PTR
|
60
|
-
# define RSTRING_PTR(s) (RSTRING(s)->ptr)
|
61
|
-
# define RSTRING_LEN(s) (RSTRING(s)->len)
|
62
|
-
#endif
|
63
|
-
|
64
|
-
#ifndef RARRAY_PTR
|
65
|
-
# define RARRAY_PTR(a) (RARRAY(a)->ptr)
|
66
|
-
# define RARRAY_LEN(a) (RARRAY(a)->len)
|
67
|
-
#endif
|
68
|
-
|
69
|
-
#ifndef RARRAY_CONST_PTR
|
70
|
-
# define RARRAY_CONST_PTR(a) RARRAY_PTR(a)
|
71
|
-
#endif
|
72
|
-
|
73
|
-
#ifndef DBL2NUM
|
74
|
-
# define DBL2NUM(v) (rb_float_new(v))
|
75
|
-
#endif
|
76
|
-
|
77
|
-
#ifndef RBASIC_CLASS
|
78
|
-
# define RBASIC_CLASS(obj) (RBASIC(obj)->klass)
|
42
|
+
#ifndef RB_ULL2NUM
|
43
|
+
# define RB_ULL2NUM ULL2NUM
|
79
44
|
#endif
|
80
45
|
|
81
46
|
#ifndef G_SOURCE_REMOVE
|
@@ -143,11 +108,11 @@ G_BEGIN_DECLS
|
|
143
108
|
#define POINTER2RVAL(pointer) ((VALUE)(pointer))
|
144
109
|
|
145
110
|
#if SIZEOF_VOIDP == SIZEOF_LONG
|
146
|
-
# define NUM2POINTER(number) ((gpointer)
|
147
|
-
# define POINTER2NUM(pointer)
|
111
|
+
# define NUM2POINTER(number) ((gpointer)RB_NUM2ULONG(number))
|
112
|
+
# define POINTER2NUM(pointer) RB_ULONG2NUM((unsigned long)pointer)
|
148
113
|
#else
|
149
|
-
# define NUM2POINTER(number) ((gpointer)
|
150
|
-
# define POINTER2NUM(pointer)
|
114
|
+
# define NUM2POINTER(number) ((gpointer)RB_NUM2ULL(number))
|
115
|
+
# define POINTER2NUM(pointer) RB_ULL2NUM((unsigned LONG_LONG)pointer)
|
151
116
|
#endif
|
152
117
|
|
153
118
|
#define GINTS2RVAL(ary, n) rbg_gints2rval(ary, n)
|
@@ -245,6 +210,8 @@ extern GQuark rbgerr_ruby_error_quark(void);
|
|
245
210
|
extern VALUE rbgerr_gerror2exception(GError *error);
|
246
211
|
extern VALUE rbgerr_define_gerror(GQuark domain, const gchar* name, VALUE module, VALUE parent, GType gtype);
|
247
212
|
|
213
|
+
/* Deprecated. Use RB_LL2NUM()/RB_ULL2NUM()/RB_NUM2LL()/RB_NUM2ULL()
|
214
|
+
* directly. */
|
248
215
|
extern VALUE rbglib_int64_to_num(guint64 val);
|
249
216
|
extern VALUE rbglib_uint64_to_num(guint64 val);
|
250
217
|
extern gint64 rbglib_num_to_int64(VALUE val);
|
data/ext/glib2/rbglib_int64.c
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
2
|
/*
|
3
|
-
* Copyright (C) 2011 Ruby-
|
4
|
-
* Copyright (C) 2003 Masahiro Sakai
|
5
|
-
* Copyright (C) 2002 Masahiro Sakai
|
6
|
-
* Kenichi Komiya
|
3
|
+
* Copyright (C) 2011-2024 Ruby-GNOME Project Team
|
7
4
|
*
|
8
5
|
* This library is free software; you can redistribute it and/or
|
9
6
|
* modify it under the terms of the GNU Lesser General Public
|
@@ -23,143 +20,30 @@
|
|
23
20
|
|
24
21
|
#include "rbgprivate.h"
|
25
22
|
|
26
|
-
|
27
|
-
static ID id_rshift;
|
28
|
-
static ID id_lshift;
|
29
|
-
static ID id_lt;
|
30
|
-
static ID id_plus;
|
31
|
-
static ID id_uminus;
|
32
|
-
static ID id_abs;
|
33
|
-
static VALUE max_PRUint32;
|
34
|
-
|
35
|
-
typedef guint64 PRUint64;
|
36
|
-
typedef gint64 PRInt64;
|
37
|
-
|
38
|
-
#define LL_ZERO G_GINT64_CONSTANT(0)
|
39
|
-
#define LL_UI2L(lhs,rhs) ((lhs)=(rhs))
|
40
|
-
#define LL_L2UI(lhs,rhs) ((lhs)=(guint32)(rhs))
|
41
|
-
#define LL_SHL(lhs,v1,v2) ((lhs)=(v1)<<(v2))
|
42
|
-
#define LL_SHR(lhs,v1,v2) ((lhs)=(v1)>>(v2))
|
43
|
-
#define LL_ADD(lhs,v1,v2) ((lhs)=(v1)+(v2))
|
44
|
-
#define LL_NEG(lhs,rhs) ((lhs)=-(rhs))
|
45
|
-
#define LL_CMP(v1,op,v2) ((v1) op (v2))
|
46
|
-
|
47
|
-
/**********************************************************************/
|
48
|
-
/*
|
49
|
-
following is ripped from rbXPCOM-0.0.3
|
50
|
-
http://www.ruby-lang.org/en/raa-list.rhtml?name=rbXPCOM
|
51
|
-
Copyright (C) 2001 Kenichi Komiya <kom@mail1.accsnet.ne.jp>
|
52
|
-
*/
|
53
|
-
|
54
|
-
static PRUint64
|
55
|
-
RubyTo64BitInt(VALUE aRuby)
|
56
|
-
{
|
57
|
-
VALUE bitMask = max_PRUint32;
|
58
|
-
VALUE lo = rb_funcall(aRuby, id_and, 1, bitMask);
|
59
|
-
VALUE hi = rb_funcall(aRuby, id_rshift, 1, INT2FIX(32));
|
60
|
-
PRUint64 result, hi64, lo64;
|
61
|
-
LL_UI2L(hi64, NUM2UINT(hi));
|
62
|
-
LL_UI2L(lo64, NUM2UINT(lo));
|
63
|
-
LL_SHL(result, hi64, 32);
|
64
|
-
LL_ADD(result, result, lo64);
|
65
|
-
return result;
|
66
|
-
}
|
67
|
-
|
68
|
-
|
69
|
-
static inline PRUint64
|
70
|
-
RubyToPRUint64(VALUE aRuby)
|
71
|
-
{
|
72
|
-
return RubyTo64BitInt(aRuby);
|
73
|
-
}
|
74
|
-
|
75
|
-
|
76
|
-
static PRInt64
|
77
|
-
RubyToPRInt64(VALUE aRuby)
|
78
|
-
{
|
79
|
-
if(RVAL2CBOOL(rb_funcall(aRuby, id_lt, 1, INT2FIX(0))))
|
80
|
-
{
|
81
|
-
VALUE absRuby = rb_funcall(aRuby, id_abs, 0);
|
82
|
-
PRInt64 result;
|
83
|
-
LL_NEG(result, RubyTo64BitInt(absRuby));
|
84
|
-
return result;
|
85
|
-
} else
|
86
|
-
return (PRInt64)RubyTo64BitInt(aRuby);
|
87
|
-
|
88
|
-
}
|
89
|
-
|
90
|
-
static VALUE
|
91
|
-
RubyFrom64BitInt(PRUint64 aNative)
|
92
|
-
{
|
93
|
-
PRUint64 lo64, hi64;
|
94
|
-
LL_L2UI(lo64, aNative);
|
95
|
-
LL_SHR(hi64, aNative, 32);
|
96
|
-
{
|
97
|
-
VALUE lo = UINT2NUM(lo64);
|
98
|
-
VALUE hi = UINT2NUM(hi64);
|
99
|
-
VALUE hiRuby = rb_funcall(hi, id_lshift, 1, INT2FIX(32));
|
100
|
-
return rb_funcall(hiRuby, id_plus, 1, lo);
|
101
|
-
}
|
102
|
-
}
|
103
|
-
|
104
|
-
static inline VALUE
|
105
|
-
PRUint64ToRuby(PRUint64 aNative)
|
106
|
-
{
|
107
|
-
return RubyFrom64BitInt(aNative);
|
108
|
-
}
|
109
|
-
|
110
|
-
static VALUE
|
111
|
-
PRInt64ToRuby(PRInt64 aNative)
|
112
|
-
{
|
113
|
-
if(LL_CMP(aNative, <, LL_ZERO))
|
114
|
-
{
|
115
|
-
PRUint64 abs64;
|
116
|
-
LL_NEG(abs64, aNative);
|
117
|
-
return rb_funcall(RubyFrom64BitInt(abs64), id_uminus, 0);
|
118
|
-
}
|
119
|
-
else
|
120
|
-
return RubyFrom64BitInt((PRUint64)aNative);
|
121
|
-
}
|
122
|
-
|
123
|
-
/* end of ripping */
|
124
|
-
/**********************************************************************/
|
125
|
-
|
23
|
+
/* Deprecated. Use RB_LL2NUM() directly. */
|
126
24
|
VALUE
|
127
25
|
rbglib_int64_to_num(guint64 val)
|
128
26
|
{
|
129
|
-
return
|
27
|
+
return RB_LL2NUM(val);
|
130
28
|
}
|
131
29
|
|
30
|
+
/* Deprecated. Use RB_ULL2NUM() directly. */
|
132
31
|
VALUE
|
133
32
|
rbglib_uint64_to_num(guint64 val)
|
134
33
|
{
|
135
|
-
return
|
34
|
+
return RB_ULL2NUM(val);
|
136
35
|
}
|
137
36
|
|
37
|
+
/* Deprecated. Use RB_NUM2LL() directly. */
|
138
38
|
gint64
|
139
39
|
rbglib_num_to_int64(VALUE val)
|
140
40
|
{
|
141
|
-
return
|
41
|
+
return RB_NUM2LL(val);
|
142
42
|
}
|
143
43
|
|
44
|
+
/* Deprecated. Use RB_NUM2ULL() directly. */
|
144
45
|
guint64
|
145
46
|
rbglib_num_to_uint64(VALUE val)
|
146
47
|
{
|
147
|
-
return
|
148
|
-
}
|
149
|
-
|
150
|
-
/**********************************************************************/
|
151
|
-
|
152
|
-
void
|
153
|
-
Init_glib_int64(void)
|
154
|
-
{
|
155
|
-
id_and = rb_intern("&");
|
156
|
-
id_rshift = rb_intern(">>");
|
157
|
-
id_lshift = rb_intern("<<");
|
158
|
-
id_lt = rb_intern("<");
|
159
|
-
id_plus = rb_intern("+");
|
160
|
-
id_uminus = rb_intern("-@");
|
161
|
-
id_abs = rb_intern("abs");
|
162
|
-
|
163
|
-
rb_global_variable(&max_PRUint32);
|
164
|
-
max_PRUint32 = UINT2NUM(0xffffffffL);
|
48
|
+
return RB_NUM2ULL(val);
|
165
49
|
}
|
data/ext/glib2/rbgobj_type.c
CHANGED
@@ -638,7 +638,7 @@ rg_s_try_convert(VALUE self, VALUE value)
|
|
638
638
|
return value;
|
639
639
|
|
640
640
|
if (RVAL2CBOOL(rb_obj_is_kind_of(value, rb_cInteger))) {
|
641
|
-
GType gtype =
|
641
|
+
GType gtype = NUM2SIZET(value);
|
642
642
|
if (!g_type_name(gtype))
|
643
643
|
return Qnil;
|
644
644
|
return rb_funcall(self, id_new, 1, value);
|
@@ -672,7 +672,7 @@ rg_s_try_convert(VALUE self, VALUE value)
|
|
672
672
|
} else {
|
673
673
|
Data_Get_Struct(data, RGObjClassInfo, cinfo);
|
674
674
|
}
|
675
|
-
return rb_funcall(self, id_new, 1,
|
675
|
+
return rb_funcall(self, id_new, 1, SIZET2NUM(cinfo->gtype));
|
676
676
|
}
|
677
677
|
return Qnil;
|
678
678
|
}
|
data/ext/glib2/rbgobj_value.c
CHANGED
@@ -374,7 +374,7 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
|
|
374
374
|
|
375
375
|
rb_scan_args(argc, argv, "11", &rb_gtype, &rb_value);
|
376
376
|
|
377
|
-
g_value_init(&value,
|
377
|
+
g_value_init(&value, NUM2SIZET(rb_to_int(rb_gtype)));
|
378
378
|
if (argc == 2) {
|
379
379
|
rbgobj_rvalue_to_gvalue(rb_value, &value);
|
380
380
|
}
|
data/ext/glib2/rbgprivate.h
CHANGED
@@ -146,7 +146,6 @@ G_GNUC_INTERNAL void Init_glib_gc(void);
|
|
146
146
|
G_GNUC_INTERNAL void Init_gutil(void);
|
147
147
|
G_GNUC_INTERNAL void Init_gutil_callback(void);
|
148
148
|
G_GNUC_INTERNAL void Init_glib_gettext(void);
|
149
|
-
G_GNUC_INTERNAL void Init_glib_int64(void);
|
150
149
|
G_GNUC_INTERNAL void Init_glib_error(void);
|
151
150
|
G_GNUC_INTERNAL void Init_glib_error_conversions(void);
|
152
151
|
G_GNUC_INTERNAL void Init_glib_threads(void);
|
data/test/test-glib2.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
#
|
2
|
-
#
|
3
|
-
# Copyright (C) 2015-2022 Ruby-GNOME Project Team
|
1
|
+
# Copyright (C) 2015-2024 Ruby-GNOME Project Team
|
4
2
|
#
|
5
3
|
# This library is free software; you can redistribute it and/or
|
6
4
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -49,9 +47,12 @@ class TestGLib < Test::Unit::TestCase
|
|
49
47
|
def test_convert
|
50
48
|
assert_kind_of(String, GLib.charset)
|
51
49
|
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
# U+3042 HIRAGANA LETTER A
|
51
|
+
# U+3044 HIRAGANA LETTER I
|
52
|
+
# U+3046 HIRAGANA LETTER U
|
53
|
+
utf8 = "\u3042\u3044\u3046"
|
54
|
+
sjis = utf8.encode("Shift_JIS")
|
55
|
+
euc = utf8.encode("EUC-JP")
|
55
56
|
assert_equal(utf8, GLib.convert(sjis, "UTF-8", "SHIFT_JIS"))
|
56
57
|
assert_equal(euc, GLib.convert(sjis, "EUC-JP", "SHIFT_JIS"))
|
57
58
|
assert_equal(sjis, GLib.convert(sjis, "SHIFT_JIS", "SHIFT_JIS"))
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glib2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.2.
|
4
|
+
version: 4.2.5
|
5
5
|
platform: ruby
|
6
|
+
original_platform: ''
|
6
7
|
authors:
|
7
8
|
- The Ruby-GNOME Project Team
|
8
9
|
bindir: bin
|
9
10
|
cert_chain: []
|
10
|
-
date: 2024-
|
11
|
+
date: 2024-12-15 00:00:00.000000000 Z
|
11
12
|
dependencies:
|
12
13
|
- !ruby/object:Gem::Dependency
|
13
14
|
name: pkg-config
|