scilab: use uintptr_t for storing pointers in STL container of pointers

This commit is contained in:
Simon Marchetto 2014-03-20 16:02:43 +01:00
commit c37baf0b7c
2 changed files with 11 additions and 7 deletions

View file

@ -4,6 +4,10 @@
*
*/
%{
#include <stdint.h>
%}
#define SWIG_Traits_Sequence_frag(Type) %fragment_name(AsVal_Traits_Sequence, Type)
#define SWIG_AsCheck_Sequence_frag(Type...) %fragment_name(AsCheck_Sequence, Type)
@ -77,10 +81,10 @@ namespace swig {
};
template <typename T> struct traits_from_sequence<T*> {
static int create(int size, void **sequence) {
return SWIG_FromCreate_Sequence_dec(ptr)(size, (long long **)sequence);
return SWIG_FromCreate_Sequence_dec(ptr)(size, (uintptr_t **)sequence);
}
static SwigSciObject set(int size, void *sequence) {
return SWIG_FromSet_Sequence_dec(ptr)(size, (long long *)sequence);
return SWIG_FromSet_Sequence_dec(ptr)(size, (uintptr_t *)sequence);
}
};
}
@ -150,7 +154,7 @@ namespace swig {
};
template <typename T> struct traits_from_sequenceitem<T*> {
static int from(void *pSequence, int iItemIndex, T *itemValue) {
return SWIG_From_SequenceItem_dec(ptr)((long long *)pSequence, iItemIndex, (long long) itemValue);
return SWIG_From_SequenceItem_dec(ptr)((uintptr_t *)pSequence, iItemIndex, (uintptr_t) itemValue);
}
};
}

View file

@ -36,8 +36,8 @@ SWIG_AsSize_Sequence_dec(ptr)(SwigSciObject _obj, int *_piSize) {
%fragment(SWIG_FromCreate_Sequence_frag(ptr), "header") {
SWIGINTERN int
SWIG_FromCreate_Sequence_dec(ptr)(int _size, long long **_sequence) {
*_sequence = new long long[_size];
SWIG_FromCreate_Sequence_dec(ptr)(int _size, uintptr_t **_sequence) {
*_sequence = new uintptr_t[_size];
return *_sequence != NULL ? SWIG_OK : SWIG_ERROR;
}
}
@ -45,7 +45,7 @@ SWIG_FromCreate_Sequence_dec(ptr)(int _size, long long **_sequence) {
%fragment(SWIG_FromSet_Sequence_frag(ptr), "header") {
SWIGINTERN SwigSciObject
SWIG_FromSet_Sequence_dec(ptr)(int _size, long long *_sequence) {
SWIG_FromSet_Sequence_dec(ptr)(int _size, uintptr_t *_sequence) {
SciErr sciErr;
int *piListAddr;
@ -116,7 +116,7 @@ SWIG_AsVal_SequenceItem_dec(ptr)(SwigSciObject _obj, int *_piSequence, int _item
%fragment(SWIG_From_SequenceItem_frag(ptr), "header") {
SWIGINTERN int
SWIG_From_SequenceItem_dec(ptr)(long long *_pSequence, int _iItemIndex, long long _itemValue) {
SWIG_From_SequenceItem_dec(ptr)(uintptr_t *_pSequence, int _iItemIndex, uintptr_t _itemValue) {
_pSequence[_iItemIndex] = _itemValue;
return SWIG_OK;
}