comparison libpurple/value.c @ 15822:32c366eeeb99

sed -ie 's/gaim/purple/g'
author Sean Egan <seanegan@gmail.com>
date Mon, 19 Mar 2007 07:01:17 +0000
parents 5fe8042783c1
children 44b4e8bd759b
comparison
equal deleted inserted replaced
15821:84b0f9b23ede 15822:32c366eeeb99
1 /** 1 /**
2 * @file value.c Value wrapper API 2 * @file value.c Value wrapper API
3 * @ingroup core 3 * @ingroup core
4 * 4 *
5 * gaim 5 * purple
6 * 6 *
7 * Gaim is the legal property of its developers, whose names are too numerous 7 * Purple is the legal property of its developers, whose names are too numerous
8 * to list here. Please refer to the COPYRIGHT file distributed with this 8 * to list here. Please refer to the COPYRIGHT file distributed with this
9 * source distribution. 9 * source distribution.
10 * 10 *
11 * This program is free software; you can redistribute it and/or modify 11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by 12 * it under the terms of the GNU General Public License as published by
26 26
27 #include "value.h" 27 #include "value.h"
28 28
29 #define OUTGOING_FLAG 0x01 29 #define OUTGOING_FLAG 0x01
30 30
31 GaimValue * 31 PurpleValue *
32 gaim_value_new(GaimType type, ...) 32 purple_value_new(PurpleType type, ...)
33 { 33 {
34 GaimValue *value; 34 PurpleValue *value;
35 va_list args; 35 va_list args;
36 36
37 g_return_val_if_fail(type != GAIM_TYPE_UNKNOWN, NULL); 37 g_return_val_if_fail(type != PURPLE_TYPE_UNKNOWN, NULL);
38 38
39 value = g_new0(GaimValue, 1); 39 value = g_new0(PurpleValue, 1);
40 40
41 value->type = type; 41 value->type = type;
42 42
43 va_start(args, type); 43 va_start(args, type);
44 44
45 if (type == GAIM_TYPE_SUBTYPE) 45 if (type == PURPLE_TYPE_SUBTYPE)
46 value->u.subtype = va_arg(args, int); 46 value->u.subtype = va_arg(args, int);
47 else if (type == GAIM_TYPE_BOXED) 47 else if (type == PURPLE_TYPE_BOXED)
48 value->u.specific_type = g_strdup(va_arg(args, char *)); 48 value->u.specific_type = g_strdup(va_arg(args, char *));
49 49
50 va_end(args); 50 va_end(args);
51 51
52 return value; 52 return value;
53 } 53 }
54 54
55 GaimValue * 55 PurpleValue *
56 gaim_value_new_outgoing(GaimType type, ...) 56 purple_value_new_outgoing(PurpleType type, ...)
57 { 57 {
58 GaimValue *value; 58 PurpleValue *value;
59 va_list args; 59 va_list args;
60 60
61 g_return_val_if_fail(type != GAIM_TYPE_UNKNOWN, NULL); 61 g_return_val_if_fail(type != PURPLE_TYPE_UNKNOWN, NULL);
62 62
63 value = g_new0(GaimValue, 1); 63 value = g_new0(PurpleValue, 1);
64 64
65 value->type = type; 65 value->type = type;
66 66
67 va_start(args, type); 67 va_start(args, type);
68 68
69 if (type == GAIM_TYPE_SUBTYPE) 69 if (type == PURPLE_TYPE_SUBTYPE)
70 value->u.subtype = va_arg(args, int); 70 value->u.subtype = va_arg(args, int);
71 else if (type == GAIM_TYPE_BOXED) 71 else if (type == PURPLE_TYPE_BOXED)
72 value->u.specific_type = g_strdup(va_arg(args, char *)); 72 value->u.specific_type = g_strdup(va_arg(args, char *));
73 73
74 va_end(args); 74 va_end(args);
75 75
76 value->flags |= OUTGOING_FLAG; 76 value->flags |= OUTGOING_FLAG;
77 77
78 return value; 78 return value;
79 } 79 }
80 80
81 void 81 void
82 gaim_value_destroy(GaimValue *value) 82 purple_value_destroy(PurpleValue *value)
83 { 83 {
84 g_return_if_fail(value != NULL); 84 g_return_if_fail(value != NULL);
85 85
86 if (gaim_value_get_type(value) == GAIM_TYPE_BOXED) 86 if (purple_value_get_type(value) == PURPLE_TYPE_BOXED)
87 { 87 {
88 g_free(value->u.specific_type); 88 g_free(value->u.specific_type);
89 } 89 }
90 else if (gaim_value_get_type(value) == GAIM_TYPE_STRING) 90 else if (purple_value_get_type(value) == PURPLE_TYPE_STRING)
91 { 91 {
92 g_free(value->data.string_data); 92 g_free(value->data.string_data);
93 } 93 }
94 94
95 g_free(value); 95 g_free(value);
96 } 96 }
97 97
98 GaimValue * 98 PurpleValue *
99 gaim_value_dup(const GaimValue *value) 99 purple_value_dup(const PurpleValue *value)
100 { 100 {
101 GaimValue *new_value; 101 PurpleValue *new_value;
102 GaimType type; 102 PurpleType type;
103 103
104 g_return_val_if_fail(value != NULL, NULL); 104 g_return_val_if_fail(value != NULL, NULL);
105 105
106 type = gaim_value_get_type(value); 106 type = purple_value_get_type(value);
107 107
108 if (type == GAIM_TYPE_SUBTYPE) 108 if (type == PURPLE_TYPE_SUBTYPE)
109 { 109 {
110 new_value = gaim_value_new(GAIM_TYPE_SUBTYPE, 110 new_value = purple_value_new(PURPLE_TYPE_SUBTYPE,
111 gaim_value_get_subtype(value)); 111 purple_value_get_subtype(value));
112 } 112 }
113 else if (type == GAIM_TYPE_BOXED) 113 else if (type == PURPLE_TYPE_BOXED)
114 { 114 {
115 new_value = gaim_value_new(GAIM_TYPE_BOXED, 115 new_value = purple_value_new(PURPLE_TYPE_BOXED,
116 gaim_value_get_specific_type(value)); 116 purple_value_get_specific_type(value));
117 } 117 }
118 else 118 else
119 new_value = gaim_value_new(type); 119 new_value = purple_value_new(type);
120 120
121 new_value->flags = value->flags; 121 new_value->flags = value->flags;
122 122
123 switch (type) 123 switch (type)
124 { 124 {
125 case GAIM_TYPE_CHAR: 125 case PURPLE_TYPE_CHAR:
126 gaim_value_set_char(new_value, gaim_value_get_char(value)); 126 purple_value_set_char(new_value, purple_value_get_char(value));
127 break; 127 break;
128 128
129 case GAIM_TYPE_UCHAR: 129 case PURPLE_TYPE_UCHAR:
130 gaim_value_set_uchar(new_value, gaim_value_get_uchar(value)); 130 purple_value_set_uchar(new_value, purple_value_get_uchar(value));
131 break; 131 break;
132 132
133 case GAIM_TYPE_BOOLEAN: 133 case PURPLE_TYPE_BOOLEAN:
134 gaim_value_set_boolean(new_value, gaim_value_get_boolean(value)); 134 purple_value_set_boolean(new_value, purple_value_get_boolean(value));
135 break; 135 break;
136 136
137 case GAIM_TYPE_SHORT: 137 case PURPLE_TYPE_SHORT:
138 gaim_value_set_short(new_value, gaim_value_get_short(value)); 138 purple_value_set_short(new_value, purple_value_get_short(value));
139 break; 139 break;
140 140
141 case GAIM_TYPE_USHORT: 141 case PURPLE_TYPE_USHORT:
142 gaim_value_set_ushort(new_value, gaim_value_get_ushort(value)); 142 purple_value_set_ushort(new_value, purple_value_get_ushort(value));
143 break; 143 break;
144 144
145 case GAIM_TYPE_INT: 145 case PURPLE_TYPE_INT:
146 gaim_value_set_int(new_value, gaim_value_get_int(value)); 146 purple_value_set_int(new_value, purple_value_get_int(value));
147 break; 147 break;
148 148
149 case GAIM_TYPE_UINT: 149 case PURPLE_TYPE_UINT:
150 gaim_value_set_uint(new_value, gaim_value_get_uint(value)); 150 purple_value_set_uint(new_value, purple_value_get_uint(value));
151 break; 151 break;
152 152
153 case GAIM_TYPE_LONG: 153 case PURPLE_TYPE_LONG:
154 gaim_value_set_long(new_value, gaim_value_get_long(value)); 154 purple_value_set_long(new_value, purple_value_get_long(value));
155 break; 155 break;
156 156
157 case GAIM_TYPE_ULONG: 157 case PURPLE_TYPE_ULONG:
158 gaim_value_set_ulong(new_value, gaim_value_get_ulong(value)); 158 purple_value_set_ulong(new_value, purple_value_get_ulong(value));
159 break; 159 break;
160 160
161 case GAIM_TYPE_INT64: 161 case PURPLE_TYPE_INT64:
162 gaim_value_set_int64(new_value, gaim_value_get_int64(value)); 162 purple_value_set_int64(new_value, purple_value_get_int64(value));
163 break; 163 break;
164 164
165 case GAIM_TYPE_UINT64: 165 case PURPLE_TYPE_UINT64:
166 gaim_value_set_uint64(new_value, gaim_value_get_uint64(value)); 166 purple_value_set_uint64(new_value, purple_value_get_uint64(value));
167 break; 167 break;
168 168
169 case GAIM_TYPE_STRING: 169 case PURPLE_TYPE_STRING:
170 gaim_value_set_string(new_value, gaim_value_get_string(value)); 170 purple_value_set_string(new_value, purple_value_get_string(value));
171 break; 171 break;
172 172
173 case GAIM_TYPE_OBJECT: 173 case PURPLE_TYPE_OBJECT:
174 gaim_value_set_object(new_value, gaim_value_get_object(value)); 174 purple_value_set_object(new_value, purple_value_get_object(value));
175 break; 175 break;
176 176
177 case GAIM_TYPE_POINTER: 177 case PURPLE_TYPE_POINTER:
178 gaim_value_set_pointer(new_value, gaim_value_get_pointer(value)); 178 purple_value_set_pointer(new_value, purple_value_get_pointer(value));
179 break; 179 break;
180 180
181 case GAIM_TYPE_ENUM: 181 case PURPLE_TYPE_ENUM:
182 gaim_value_set_enum(new_value, gaim_value_get_enum(value)); 182 purple_value_set_enum(new_value, purple_value_get_enum(value));
183 break; 183 break;
184 184
185 case GAIM_TYPE_BOXED: 185 case PURPLE_TYPE_BOXED:
186 gaim_value_set_boxed(new_value, gaim_value_get_boxed(value)); 186 purple_value_set_boxed(new_value, purple_value_get_boxed(value));
187 break; 187 break;
188 188
189 default: 189 default:
190 break; 190 break;
191 } 191 }
192 192
193 return new_value; 193 return new_value;
194 } 194 }
195 195
196 GaimType 196 PurpleType
197 gaim_value_get_type(const GaimValue *value) 197 purple_value_get_type(const PurpleValue *value)
198 { 198 {
199 g_return_val_if_fail(value != NULL, GAIM_TYPE_UNKNOWN); 199 g_return_val_if_fail(value != NULL, PURPLE_TYPE_UNKNOWN);
200 200
201 return value->type; 201 return value->type;
202 } 202 }
203 203
204 unsigned int 204 unsigned int
205 gaim_value_get_subtype(const GaimValue *value) 205 purple_value_get_subtype(const PurpleValue *value)
206 { 206 {
207 g_return_val_if_fail(value != NULL, 0); 207 g_return_val_if_fail(value != NULL, 0);
208 g_return_val_if_fail(gaim_value_get_type(value) == GAIM_TYPE_SUBTYPE, 0); 208 g_return_val_if_fail(purple_value_get_type(value) == PURPLE_TYPE_SUBTYPE, 0);
209 209
210 return value->u.subtype; 210 return value->u.subtype;
211 } 211 }
212 212
213 const char * 213 const char *
214 gaim_value_get_specific_type(const GaimValue *value) 214 purple_value_get_specific_type(const PurpleValue *value)
215 { 215 {
216 g_return_val_if_fail(value != NULL, NULL); 216 g_return_val_if_fail(value != NULL, NULL);
217 g_return_val_if_fail(gaim_value_get_type(value) == GAIM_TYPE_BOXED, NULL); 217 g_return_val_if_fail(purple_value_get_type(value) == PURPLE_TYPE_BOXED, NULL);
218 218
219 return value->u.specific_type; 219 return value->u.specific_type;
220 } 220 }
221 221
222 gboolean 222 gboolean
223 gaim_value_is_outgoing(const GaimValue *value) 223 purple_value_is_outgoing(const PurpleValue *value)
224 { 224 {
225 g_return_val_if_fail(value != NULL, FALSE); 225 g_return_val_if_fail(value != NULL, FALSE);
226 226
227 return (value->flags & OUTGOING_FLAG); 227 return (value->flags & OUTGOING_FLAG);
228 } 228 }
229 229
230 void 230 void
231 gaim_value_set_char(GaimValue *value, char data) 231 purple_value_set_char(PurpleValue *value, char data)
232 { 232 {
233 g_return_if_fail(value != NULL); 233 g_return_if_fail(value != NULL);
234 234
235 value->data.char_data = data; 235 value->data.char_data = data;
236 } 236 }
237 237
238 void 238 void
239 gaim_value_set_uchar(GaimValue *value, unsigned char data) 239 purple_value_set_uchar(PurpleValue *value, unsigned char data)
240 { 240 {
241 g_return_if_fail(value != NULL); 241 g_return_if_fail(value != NULL);
242 242
243 value->data.uchar_data = data; 243 value->data.uchar_data = data;
244 } 244 }
245 245
246 void 246 void
247 gaim_value_set_boolean(GaimValue *value, gboolean data) 247 purple_value_set_boolean(PurpleValue *value, gboolean data)
248 { 248 {
249 g_return_if_fail(value != NULL); 249 g_return_if_fail(value != NULL);
250 250
251 value->data.boolean_data = data; 251 value->data.boolean_data = data;
252 } 252 }
253 253
254 void 254 void
255 gaim_value_set_short(GaimValue *value, short data) 255 purple_value_set_short(PurpleValue *value, short data)
256 { 256 {
257 g_return_if_fail(value != NULL); 257 g_return_if_fail(value != NULL);
258 258
259 value->data.short_data = data; 259 value->data.short_data = data;
260 } 260 }
261 261
262 void 262 void
263 gaim_value_set_ushort(GaimValue *value, unsigned short data) 263 purple_value_set_ushort(PurpleValue *value, unsigned short data)
264 { 264 {
265 g_return_if_fail(value != NULL); 265 g_return_if_fail(value != NULL);
266 266
267 value->data.ushort_data = data; 267 value->data.ushort_data = data;
268 } 268 }
269 269
270 void 270 void
271 gaim_value_set_int(GaimValue *value, int data) 271 purple_value_set_int(PurpleValue *value, int data)
272 { 272 {
273 g_return_if_fail(value != NULL); 273 g_return_if_fail(value != NULL);
274 274
275 value->data.int_data = data; 275 value->data.int_data = data;
276 } 276 }
277 277
278 void 278 void
279 gaim_value_set_uint(GaimValue *value, unsigned int data) 279 purple_value_set_uint(PurpleValue *value, unsigned int data)
280 { 280 {
281 g_return_if_fail(value != NULL); 281 g_return_if_fail(value != NULL);
282 282
283 value->data.int_data = data; 283 value->data.int_data = data;
284 } 284 }
285 285
286 void 286 void
287 gaim_value_set_long(GaimValue *value, long data) 287 purple_value_set_long(PurpleValue *value, long data)
288 { 288 {
289 g_return_if_fail(value != NULL); 289 g_return_if_fail(value != NULL);
290 290
291 value->data.long_data = data; 291 value->data.long_data = data;
292 } 292 }
293 293
294 void 294 void
295 gaim_value_set_ulong(GaimValue *value, unsigned long data) 295 purple_value_set_ulong(PurpleValue *value, unsigned long data)
296 { 296 {
297 g_return_if_fail(value != NULL); 297 g_return_if_fail(value != NULL);
298 298
299 value->data.long_data = data; 299 value->data.long_data = data;
300 } 300 }
301 301
302 void 302 void
303 gaim_value_set_int64(GaimValue *value, gint64 data) 303 purple_value_set_int64(PurpleValue *value, gint64 data)
304 { 304 {
305 g_return_if_fail(value != NULL); 305 g_return_if_fail(value != NULL);
306 306
307 value->data.int64_data = data; 307 value->data.int64_data = data;
308 } 308 }
309 309
310 void 310 void
311 gaim_value_set_uint64(GaimValue *value, guint64 data) 311 purple_value_set_uint64(PurpleValue *value, guint64 data)
312 { 312 {
313 g_return_if_fail(value != NULL); 313 g_return_if_fail(value != NULL);
314 314
315 value->data.uint64_data = data; 315 value->data.uint64_data = data;
316 } 316 }
317 317
318 void 318 void
319 gaim_value_set_string(GaimValue *value, const char *data) 319 purple_value_set_string(PurpleValue *value, const char *data)
320 { 320 {
321 g_return_if_fail(value != NULL); 321 g_return_if_fail(value != NULL);
322 322
323 g_free(value->data.string_data); 323 g_free(value->data.string_data);
324 value->data.string_data = g_strdup(data); 324 value->data.string_data = g_strdup(data);
325 } 325 }
326 326
327 void 327 void
328 gaim_value_set_object(GaimValue *value, void *data) 328 purple_value_set_object(PurpleValue *value, void *data)
329 { 329 {
330 g_return_if_fail(value != NULL); 330 g_return_if_fail(value != NULL);
331 331
332 value->data.object_data = data; 332 value->data.object_data = data;
333 } 333 }
334 334
335 void 335 void
336 gaim_value_set_pointer(GaimValue *value, void *data) 336 purple_value_set_pointer(PurpleValue *value, void *data)
337 { 337 {
338 g_return_if_fail(value != NULL); 338 g_return_if_fail(value != NULL);
339 339
340 value->data.pointer_data = data; 340 value->data.pointer_data = data;
341 } 341 }
342 342
343 void 343 void
344 gaim_value_set_enum(GaimValue *value, int data) 344 purple_value_set_enum(PurpleValue *value, int data)
345 { 345 {
346 g_return_if_fail(value != NULL); 346 g_return_if_fail(value != NULL);
347 347
348 value->data.enum_data = data; 348 value->data.enum_data = data;
349 } 349 }
350 350
351 void 351 void
352 gaim_value_set_boxed(GaimValue *value, void *data) 352 purple_value_set_boxed(PurpleValue *value, void *data)
353 { 353 {
354 g_return_if_fail(value != NULL); 354 g_return_if_fail(value != NULL);
355 355
356 value->data.boxed_data = data; 356 value->data.boxed_data = data;
357 } 357 }
358 358
359 char 359 char
360 gaim_value_get_char(const GaimValue *value) 360 purple_value_get_char(const PurpleValue *value)
361 { 361 {
362 g_return_val_if_fail(value != NULL, 0); 362 g_return_val_if_fail(value != NULL, 0);
363 363
364 return value->data.char_data; 364 return value->data.char_data;
365 } 365 }
366 366
367 unsigned char 367 unsigned char
368 gaim_value_get_uchar(const GaimValue *value) 368 purple_value_get_uchar(const PurpleValue *value)
369 { 369 {
370 g_return_val_if_fail(value != NULL, 0); 370 g_return_val_if_fail(value != NULL, 0);
371 371
372 return value->data.uchar_data; 372 return value->data.uchar_data;
373 } 373 }
374 374
375 gboolean 375 gboolean
376 gaim_value_get_boolean(const GaimValue *value) 376 purple_value_get_boolean(const PurpleValue *value)
377 { 377 {
378 g_return_val_if_fail(value != NULL, FALSE); 378 g_return_val_if_fail(value != NULL, FALSE);
379 379
380 return value->data.boolean_data; 380 return value->data.boolean_data;
381 } 381 }
382 382
383 short 383 short
384 gaim_value_get_short(const GaimValue *value) 384 purple_value_get_short(const PurpleValue *value)
385 { 385 {
386 g_return_val_if_fail(value != NULL, 0); 386 g_return_val_if_fail(value != NULL, 0);
387 387
388 return value->data.short_data; 388 return value->data.short_data;
389 } 389 }
390 390
391 unsigned short 391 unsigned short
392 gaim_value_get_ushort(const GaimValue *value) 392 purple_value_get_ushort(const PurpleValue *value)
393 { 393 {
394 g_return_val_if_fail(value != NULL, 0); 394 g_return_val_if_fail(value != NULL, 0);
395 395
396 return value->data.ushort_data; 396 return value->data.ushort_data;
397 } 397 }
398 398
399 int 399 int
400 gaim_value_get_int(const GaimValue *value) 400 purple_value_get_int(const PurpleValue *value)
401 { 401 {
402 g_return_val_if_fail(value != NULL, 0); 402 g_return_val_if_fail(value != NULL, 0);
403 403
404 return value->data.int_data; 404 return value->data.int_data;
405 } 405 }
406 406
407 unsigned int 407 unsigned int
408 gaim_value_get_uint(const GaimValue *value) 408 purple_value_get_uint(const PurpleValue *value)
409 { 409 {
410 g_return_val_if_fail(value != NULL, 0); 410 g_return_val_if_fail(value != NULL, 0);
411 411
412 return value->data.int_data; 412 return value->data.int_data;
413 } 413 }
414 414
415 long 415 long
416 gaim_value_get_long(const GaimValue *value) 416 purple_value_get_long(const PurpleValue *value)
417 { 417 {
418 g_return_val_if_fail(value != NULL, 0); 418 g_return_val_if_fail(value != NULL, 0);
419 419
420 return value->data.long_data; 420 return value->data.long_data;
421 } 421 }
422 422
423 unsigned long 423 unsigned long
424 gaim_value_get_ulong(const GaimValue *value) 424 purple_value_get_ulong(const PurpleValue *value)
425 { 425 {
426 g_return_val_if_fail(value != NULL, 0); 426 g_return_val_if_fail(value != NULL, 0);
427 427
428 return value->data.long_data; 428 return value->data.long_data;
429 } 429 }
430 430
431 gint64 431 gint64
432 gaim_value_get_int64(const GaimValue *value) 432 purple_value_get_int64(const PurpleValue *value)
433 { 433 {
434 g_return_val_if_fail(value != NULL, 0); 434 g_return_val_if_fail(value != NULL, 0);
435 435
436 return value->data.int64_data; 436 return value->data.int64_data;
437 } 437 }
438 438
439 guint64 439 guint64
440 gaim_value_get_uint64(const GaimValue *value) 440 purple_value_get_uint64(const PurpleValue *value)
441 { 441 {
442 g_return_val_if_fail(value != NULL, 0); 442 g_return_val_if_fail(value != NULL, 0);
443 443
444 return value->data.uint64_data; 444 return value->data.uint64_data;
445 } 445 }
446 446
447 const char * 447 const char *
448 gaim_value_get_string(const GaimValue *value) 448 purple_value_get_string(const PurpleValue *value)
449 { 449 {
450 g_return_val_if_fail(value != NULL, NULL); 450 g_return_val_if_fail(value != NULL, NULL);
451 451
452 return value->data.string_data; 452 return value->data.string_data;
453 } 453 }
454 454
455 void * 455 void *
456 gaim_value_get_object(const GaimValue *value) 456 purple_value_get_object(const PurpleValue *value)
457 { 457 {
458 g_return_val_if_fail(value != NULL, NULL); 458 g_return_val_if_fail(value != NULL, NULL);
459 459
460 return value->data.object_data; 460 return value->data.object_data;
461 } 461 }
462 462
463 void * 463 void *
464 gaim_value_get_pointer(const GaimValue *value) 464 purple_value_get_pointer(const PurpleValue *value)
465 { 465 {
466 g_return_val_if_fail(value != NULL, NULL); 466 g_return_val_if_fail(value != NULL, NULL);
467 467
468 return value->data.pointer_data; 468 return value->data.pointer_data;
469 } 469 }
470 470
471 int 471 int
472 gaim_value_get_enum(const GaimValue *value) 472 purple_value_get_enum(const PurpleValue *value)
473 { 473 {
474 g_return_val_if_fail(value != NULL, -1); 474 g_return_val_if_fail(value != NULL, -1);
475 475
476 return value->data.enum_data; 476 return value->data.enum_data;
477 } 477 }
478 478
479 void * 479 void *
480 gaim_value_get_boxed(const GaimValue *value) 480 purple_value_get_boxed(const PurpleValue *value)
481 { 481 {
482 g_return_val_if_fail(value != NULL, NULL); 482 g_return_val_if_fail(value != NULL, NULL);
483 483
484 return value->data.boxed_data; 484 return value->data.boxed_data;
485 } 485 }