@@ -215,28 +215,28 @@ const char* PyTruffle_StringToCstr(void* jlString) {
215
215
216
216
#define ReadMember (object , offset , T ) ((T*)(((char*)object) + PyLong_AsSsize_t(offset)))[0]
217
217
218
- short ReadShortMember (PyObject * object , PyObject * offset ) {
219
- return ReadMember (object , offset , short );
218
+ PyObject * ReadShortMember (PyObject * object , PyObject * offset ) {
219
+ return PyLong_FromLong ( ReadMember (object , offset , short ) );
220
220
}
221
221
222
- int ReadIntMember (PyObject * object , PyObject * offset ) {
223
- return ReadMember (object , offset , int );
222
+ PyObject * ReadIntMember (PyObject * object , PyObject * offset ) {
223
+ return PyLong_FromLong ( ReadMember (object , offset , int ) );
224
224
}
225
225
226
- long ReadLongMember (PyObject * object , PyObject * offset ) {
227
- return ReadMember (object , offset , long );
226
+ PyObject * ReadLongMember (PyObject * object , PyObject * offset ) {
227
+ return PyLong_FromLong ( ReadMember (object , offset , long ) );
228
228
}
229
229
230
- float ReadFloatMember (PyObject * object , PyObject * offset ) {
231
- return ReadMember (object , offset , float );
230
+ PyObject * ReadFloatMember (PyObject * object , PyObject * offset ) {
231
+ return PyFloat_FromDouble ( ReadMember (object , offset , float ) );
232
232
}
233
233
234
- double ReadDoubleMember (PyObject * object , PyObject * offset ) {
235
- return ReadMember (object , offset , double );
234
+ PyObject * ReadDoubleMember (PyObject * object , PyObject * offset ) {
235
+ return PyFloat_FromDouble ( ReadMember (object , offset , double ) );
236
236
}
237
237
238
- void * ReadStringMember (PyObject * object , PyObject * offset ) {
239
- return truffle_read_string ( ReadMember (object , offset , char * ));
238
+ PyObject * ReadStringMember (PyObject * object , PyObject * offset ) {
239
+ return ( PyObject * ) polyglot_from_string ( ReadMember (object , offset , char * ), "utf-8" );
240
240
}
241
241
242
242
PyObject * ReadObjectMember (PyObject * object , PyObject * offset ) {
@@ -248,31 +248,31 @@ PyObject* ReadObjectMember(PyObject* object, PyObject* offset) {
248
248
}
249
249
}
250
250
251
- char ReadCharMember (PyObject * object , PyObject * offset ) {
252
- return ReadMember (object , offset , char );
251
+ PyObject * ReadCharMember (PyObject * object , PyObject * offset ) {
252
+ return polyglot_from_string_n ( & ReadMember (object , offset , char ), 1 , "utf-8" );
253
253
}
254
254
255
- char ReadByteMember (PyObject * object , PyObject * offset ) {
256
- return ReadMember (object , offset , char );
255
+ PyObject * ReadByteMember (PyObject * object , PyObject * offset ) {
256
+ return PyLong_FromLong ( ReadMember (object , offset , char ) );
257
257
}
258
258
259
- unsigned char ReadUByteMember (PyObject * object , PyObject * offset ) {
260
- return ReadMember (object , offset , unsigned char );
259
+ PyObject * ReadUByteMember (PyObject * object , PyObject * offset ) {
260
+ return PyLong_FromUnsignedLong ( ReadMember (object , offset , unsigned char ) );
261
261
}
262
262
263
- unsigned short ReadUShortMember (PyObject * object , PyObject * offset ) {
264
- return ReadMember (object , offset , unsigned short );
263
+ PyObject * ReadUShortMember (PyObject * object , PyObject * offset ) {
264
+ return PyLong_FromUnsignedLong ( ReadMember (object , offset , unsigned short ) );
265
265
}
266
266
267
- unsigned int ReadUIntMember (PyObject * object , PyObject * offset ) {
268
- return ReadMember (object , offset , unsigned int );
267
+ PyObject * ReadUIntMember (PyObject * object , PyObject * offset ) {
268
+ return PyLong_FromUnsignedLong ( ReadMember (object , offset , unsigned int ) );
269
269
}
270
270
271
- unsigned long ReadULongMember (PyObject * object , PyObject * offset ) {
272
- return ReadMember (object , offset , unsigned long );
271
+ PyObject * ReadULongMember (PyObject * object , PyObject * offset ) {
272
+ return PyLong_FromUnsignedLong ( ReadMember (object , offset , unsigned long ) );
273
273
}
274
274
275
- char ReadBoolMember (PyObject * object , PyObject * offset ) {
275
+ PyObject * ReadBoolMember (PyObject * object , PyObject * offset ) {
276
276
char flag = ReadMember (object , offset , char );
277
277
return flag ? Py_True : Py_False ;
278
278
}
@@ -287,16 +287,16 @@ PyObject* ReadObjectExMember(PyObject* object, PyObject* offset) {
287
287
}
288
288
}
289
289
290
- long long ReadLongLongMember (PyObject * object , PyObject * offset ) {
291
- return ReadMember (object , offset , long long );
290
+ PyObject * ReadLongLongMember (PyObject * object , PyObject * offset ) {
291
+ return PyLong_FromLongLong ( ReadMember (object , offset , long long ) );
292
292
}
293
293
294
- unsigned long long ReadULongLongMember (PyObject * object , PyObject * offset ) {
295
- return ReadMember (object , offset , unsigned long long);
294
+ PyObject * ReadULongLongMember (PyObject * object , PyObject * offset ) {
295
+ return PyLong_FromUnsignedLongLong ( ReadMember (object , offset , unsigned long long) );
296
296
}
297
297
298
- Py_ssize_t ReadPySSizeT (PyObject * object , PyObject * offset ) {
299
- return ReadMember (object , offset , Py_ssize_t );
298
+ PyObject * ReadPySSizeT (PyObject * object , PyObject * offset ) {
299
+ return PyLong_FromSsize_t ( ReadMember (object , offset , Py_ssize_t ) );
300
300
}
301
301
302
302
#undef ReadMember
@@ -347,12 +347,12 @@ PyObject* WriteCharMember(PyObject* object, PyObject* offset, PyObject* value) {
347
347
}
348
348
349
349
PyObject * WriteByteMember (PyObject * object , PyObject * offset , PyObject * value ) {
350
- WriteCharMember (object , offset , value );
350
+ WriteMember (object , offset , PyLong_AsLong ( value ), char );
351
351
return value ;
352
352
}
353
353
354
354
PyObject * WriteUByteMember (PyObject * object , PyObject * offset , PyObject * value ) {
355
- WriteCharMember (object , offset , value );
355
+ WriteMember (object , offset , PyLong_AsLong ( value ), uint8_t );
356
356
return value ;
357
357
}
358
358
0 commit comments