@@ -89,27 +89,27 @@ gvalue.init = function(gv, gtype)
89
89
end
90
90
91
91
gvalue .set = function (gv , value )
92
- local gtype_raw = gv .gtype
93
- local gtype = gvalue .comparable_type (gtype_raw )
94
- local fundamental = gobject_lib .g_type_fundamental (gtype_raw )
92
+ local gtype = gv .gtype
93
+ local gtype_comp = gvalue .comparable_type (gtype )
94
+ local fundamental = gobject_lib .g_type_fundamental (gtype )
95
95
96
- if gtype == gvalue .gbool_type then
96
+ if gtype_comp == gvalue .gbool_type then
97
97
gobject_lib .g_value_set_boolean (gv , value )
98
- elseif gtype == gvalue .gint_type then
98
+ elseif gtype_comp == gvalue .gint_type then
99
99
gobject_lib .g_value_set_int (gv , value )
100
- elseif gtype == gvalue .gdouble_type then
100
+ elseif gtype_comp == gvalue .gdouble_type then
101
101
gobject_lib .g_value_set_double (gv , value )
102
102
elseif fundamental == gvalue .genum_type then
103
- gobject_lib .g_value_set_enum (gv , gvalue .to_enum (gtype_raw , value ))
103
+ gobject_lib .g_value_set_enum (gv , gvalue .to_enum (gtype , value ))
104
104
elseif fundamental == gvalue .gflags_type then
105
105
gobject_lib .g_value_set_flags (gv , value )
106
- elseif gtype == gvalue .gstr_type then
106
+ elseif gtype_comp == gvalue .gstr_type then
107
107
gobject_lib .g_value_set_string (gv , value )
108
- elseif gtype == gvalue .refstr_type then
108
+ elseif gtype_comp == gvalue .refstr_type then
109
109
gobject_lib .vips_value_set_ref_string (gv , value )
110
- elseif gtype == gvalue .image_type then
110
+ elseif gtype_comp == gvalue .image_type then
111
111
gobject_lib .g_value_set_object (gv , value .vimage )
112
- elseif gtype == gvalue .array_int_type then
112
+ elseif gtype_comp == gvalue .array_int_type then
113
113
if type (value ) == " number" then
114
114
value = { value }
115
115
end
@@ -118,7 +118,7 @@ gvalue.set = function(gv, value)
118
118
local a = ffi .new (gvalue .int_arr_typeof , n , value )
119
119
120
120
vips_lib .vips_value_set_array_int (gv , a , n )
121
- elseif gtype == gvalue .array_double_type then
121
+ elseif gtype_comp == gvalue .array_double_type then
122
122
if type (value ) == " number" then
123
123
value = { value }
124
124
end
@@ -127,7 +127,7 @@ gvalue.set = function(gv, value)
127
127
local a = ffi .new (gvalue .double_arr_typeof , n , value )
128
128
129
129
vips_lib .vips_value_set_array_double (gv , a , n )
130
- elseif gtype == gvalue .array_image_type then
130
+ elseif gtype_comp == gvalue .array_image_type then
131
131
if Image .is_Image (value ) then
132
132
value = { value }
133
133
end
@@ -142,7 +142,7 @@ gvalue.set = function(gv, value)
142
142
-- the gvalue needs a set of refs to own
143
143
gobject_lib .g_object_ref (a [i ])
144
144
end
145
- elseif gtype == gvalue .blob_type then
145
+ elseif gtype_comp == gvalue .blob_type then
146
146
-- we need to set the blob to a copy of the lua string that vips
147
147
-- can own
148
148
local n = # value
@@ -156,27 +156,27 @@ gvalue.set = function(gv, value)
156
156
vips_lib .vips_value_set_blob (gv , glib_lib .g_free , buf , n )
157
157
end
158
158
else
159
- error (" unsupported gtype for set " .. gvalue .type_name (gtype_raw ))
159
+ error (" unsupported gtype for set " .. gvalue .type_name (gtype ))
160
160
end
161
161
end
162
162
163
163
gvalue .get = function (gv )
164
- local gtype_raw = gv .gtype
165
- local gtype = gvalue .comparable_type (gtype_raw )
166
- local fundamental = gobject_lib .g_type_fundamental (gtype_raw )
164
+ local gtype = gv .gtype
165
+ local gtype_comp = gvalue .comparable_type (gtype )
166
+ local fundamental = gobject_lib .g_type_fundamental (gtype )
167
167
168
168
local result
169
169
170
- if gtype == gvalue .gbool_type then
170
+ if gtype_comp == gvalue .gbool_type then
171
171
result = gobject_lib .g_value_get_boolean (gv )
172
- elseif gtype == gvalue .gint_type then
172
+ elseif gtype_comp == gvalue .gint_type then
173
173
result = gobject_lib .g_value_get_int (gv )
174
- elseif gtype == gvalue .gdouble_type then
174
+ elseif gtype_comp == gvalue .gdouble_type then
175
175
result = gobject_lib .g_value_get_double (gv )
176
176
elseif fundamental == gvalue .genum_type then
177
177
local enum_value = gobject_lib .g_value_get_enum (gv )
178
178
179
- local cstr = vips_lib .vips_enum_nick (gtype_raw , enum_value )
179
+ local cstr = vips_lib .vips_enum_nick (gtype , enum_value )
180
180
181
181
if cstr == ffi .NULL then
182
182
error (" value not in enum" )
@@ -185,21 +185,21 @@ gvalue.get = function(gv)
185
185
result = ffi .string (cstr )
186
186
elseif fundamental == gvalue .gflags_type then
187
187
result = gobject_lib .g_value_get_flags (gv )
188
- elseif gtype == gvalue .gstr_type then
188
+ elseif gtype_comp == gvalue .gstr_type then
189
189
local cstr = gobject_lib .g_value_get_string (gv )
190
190
191
191
if cstr ~= ffi .NULL then
192
192
result = ffi .string (cstr )
193
193
else
194
194
result = nil
195
195
end
196
- elseif gtype == gvalue .refstr_type then
196
+ elseif gtype_comp == gvalue .refstr_type then
197
197
local psize = ffi .new (gvalue .psize_typeof , 1 )
198
198
199
199
local cstr = vips_lib .vips_value_get_ref_string (gv , psize )
200
200
201
201
result = ffi .string (cstr , tonumber (psize [0 ]))
202
- elseif gtype == gvalue .image_type then
202
+ elseif gtype_comp == gvalue .image_type then
203
203
-- g_value_get_object() will not add a ref ... that is
204
204
-- held by the gvalue
205
205
local vo = gobject_lib .g_value_get_object (gv )
@@ -211,7 +211,7 @@ gvalue.get = function(gv)
211
211
gobject_lib .g_object_ref (vimage )
212
212
213
213
result = Image .new (vimage )
214
- elseif gtype == gvalue .array_int_type then
214
+ elseif gtype_comp == gvalue .array_int_type then
215
215
local pint = ffi .new (gvalue .pint_typeof , 1 )
216
216
217
217
local array = vips_lib .vips_value_get_array_int (gv , pint )
@@ -220,15 +220,15 @@ gvalue.get = function(gv)
220
220
result [i + 1 ] = array [i ]
221
221
end
222
222
223
- elseif gtype == gvalue .array_double_type then
223
+ elseif gtype_comp == gvalue .array_double_type then
224
224
local pint = ffi .new (gvalue .pint_typeof , 1 )
225
225
226
226
local array = vips_lib .vips_value_get_array_double (gv , pint )
227
227
result = {}
228
228
for i = 0 , pint [0 ] - 1 do
229
229
result [i + 1 ] = array [i ]
230
230
end
231
- elseif gtype == gvalue .array_image_type then
231
+ elseif gtype_comp == gvalue .array_image_type then
232
232
local pint = ffi .new (gvalue .pint_typeof , 1 )
233
233
234
234
local array = vips_lib .vips_value_get_array_image (gv , pint )
@@ -243,14 +243,14 @@ gvalue.get = function(gv)
243
243
244
244
result [i + 1 ] = Image .new (vimage )
245
245
end
246
- elseif gtype == gvalue .blob_type then
246
+ elseif gtype_comp == gvalue .blob_type then
247
247
local psize = ffi .new (gvalue .psize_typeof , 1 )
248
248
249
249
local array = vips_lib .vips_value_get_blob (gv , psize )
250
250
251
251
result = ffi .string (array , tonumber (psize [0 ]))
252
252
else
253
- error (" unsupported gtype for get " .. gvalue .type_name (gtype_raw ))
253
+ error (" unsupported gtype for get " .. gvalue .type_name (gtype ))
254
254
end
255
255
256
256
return result
0 commit comments