svghmi/svghmi.c
branchsvghmi
changeset 2829 4c2c50f60730
parent 2828 be947a338760
child 2862 a108677bd3d0
equal deleted inserted replaced
2828:be947a338760 2829:4c2c50f60730
   298                     void *real_value_p = NULL;
   298                     void *real_value_p = NULL;
   299                     char flags = 0;
   299                     char flags = 0;
   300                     void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags);
   300                     void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags);
   301                     void *dst_p = &rbuf[dsc->buf_index];
   301                     void *dst_p = &rbuf[dsc->buf_index];
   302                     uint32_t sz = __get_type_enum_size(dsc->type);
   302                     uint32_t sz = __get_type_enum_size(dsc->type);
   303 #warning TODO: size of string in recv
   303 
       
   304                     if(__Is_a_string(dsc)){
       
   305                         sz = ((STRING*)valptr)->len + 1;
       
   306                     }
   304 
   307 
   305                     if((valptr + sz) <= end)
   308                     if((valptr + sz) <= end)
   306                     {
   309                     {
   307                         // rescheduling spinlock until free
   310                         // rescheduling spinlock until free
   308                         while(AtomicCompareExchange(&dsc->rlock, 0, 1)) sched_yield();
   311                         while(AtomicCompareExchange(&dsc->rlock, 0, 1)) sched_yield();