00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "slinclud.h"
00024
00025 #include "slang.h"
00026 #include "_slang.h"
00027
00028 int SLang_get_array_element (SLang_Array_Type *at, SLindex_Type *indices, VOID_STAR data)
00029 {
00030 int is_ptr;
00031
00032 if ((at == NULL)
00033 || (indices == NULL)
00034 || (data == NULL))
00035 return -1;
00036
00037 is_ptr = (at->flags & SLARR_DATA_VALUE_IS_POINTER);
00038 if (is_ptr) *(VOID_STAR *) data = NULL;
00039 return _pSLarray_aget_transfer_elem (at, indices, data, at->sizeof_type, is_ptr);
00040 }
00041
00042 int SLang_set_array_element (SLang_Array_Type *at, SLindex_Type *indices, VOID_STAR data)
00043 {
00044 if ((at == NULL)
00045 || (indices == NULL)
00046 || (data == NULL))
00047 return -1;
00048
00049 return _pSLarray_aput_transfer_elem (at, indices, data, at->sizeof_type,
00050 at->flags & SLARR_DATA_VALUE_IS_POINTER);
00051 }
00052