equal
deleted
inserted
replaced
63 break; |
63 break; |
64 |
64 |
65 #define __BufferDebugDataIterator_case_p(TYPENAME)\ |
65 #define __BufferDebugDataIterator_case_p(TYPENAME)\ |
66 case TYPENAME##_P_ENUM :\ |
66 case TYPENAME##_P_ENUM :\ |
67 *flags = ((__IEC_##TYPENAME##_p *)varp)->flags;\ |
67 *flags = ((__IEC_##TYPENAME##_p *)varp)->flags;\ |
68 if (*flags && __IEC_FORCE_FLAG)\ |
68 if (*flags & __IEC_FORCE_FLAG)\ |
69 *ptrvalue = &((__IEC_##TYPENAME##_p *)varp)->fvalue;\ |
69 *ptrvalue = &((__IEC_##TYPENAME##_p *)varp)->fvalue;\ |
70 else\ |
70 else\ |
71 *ptrvalue = ((__IEC_##TYPENAME##_p *)varp)->value;\ |
71 *ptrvalue = ((__IEC_##TYPENAME##_p *)varp)->value;\ |
72 break; |
72 break; |
73 |
73 |
88 { |
88 { |
89 void *ptrvalue = NULL; |
89 void *ptrvalue = NULL; |
90 char flags = 0; |
90 char flags = 0; |
91 UnpackVar(varp, vartype, &ptrvalue, &flags); |
91 UnpackVar(varp, vartype, &ptrvalue, &flags); |
92 |
92 |
93 if(flags && __IEC_RETAIN_FLAG){ |
93 if(flags & __IEC_RETAIN_FLAG){ |
94 USINT size = __get_type_enum_size(vartype); |
94 USINT size = __get_type_enum_size(vartype); |
95 /* compute next cursor positon*/ |
95 /* compute next cursor positon*/ |
96 unsigned int next_retain_offset = retain_offset + size; |
96 unsigned int next_retain_offset = retain_offset + size; |
97 /* if buffer not full */ |
97 /* if buffer not full */ |
98 Remind(retain_offset, size, ptrvalue); |
98 Remind(retain_offset, size, ptrvalue); |