void elfwritedynentsymsize(LSym *s, int tag, LSym *t) { if(elf64) adduint64(ctxt, s, tag); else adduint32(ctxt, s, tag); addsize(ctxt, s, t); }
void elfwritedynentsymsize(Sym *s, int tag, Sym *t) { if(elf64) adduint64(s, tag); else adduint32(s, tag); addsize(s, t); }
static void addsizes(tmdb_image_size_t **p, htsmsg_t *img, const char *field, float aspect) { htsmsg_t *l = htsmsg_get_list(img, field); htsmsg_field_t *f; if(l == NULL) return; HTSMSG_FOREACH(f, l) { if(f->hmf_type == HMF_STR) addsize(p, f->hmf_str, aspect); } }
void do_assignment (header *var) /***** do_assignment assign a value to a variable. *****/ { header *variable[8],*rightside[8],*rs,*v,*mark; int rscount,varcount,i,j; ULONG offset,oldoffset,dif; char *oldendlocal; scan_space(); if (*next=='=') { next++; nosubmref=1; rs=scan_value(); nosubmref=0; if (error) return; varcount=0; /* count the variables, that get assigned something */ while (var<rs) { if (var->type!=s_reference && var->type!=s_submatrix && var->type!=s_csubmatrix && var->type!=s_isubmatrix) { output("Cannot assign to value!\n"); error=210; } variable[varcount]=var; var=nextof(var); varcount++; if (varcount>=8) { output("To many commas!\n"); error=100; return; } } /* count and note the values, that are assigned to the variables */ rscount=0; while (rs<(header *)newram) { rightside[rscount]=rs; rs=nextof(rs); rscount++; if (rscount>=8) { output("To many commas!\n"); error=101; return; } } /* cannot assign 2 values to 3 variables , e.g. */ if (rscount>1 && rscount<varcount) { output("Illegal multiple assignment!\n"); error=102; return; } oldendlocal=endlocal; offset=0; /* do all the assignments */ if (varcount==1) var=assign(variable[0],rightside[0]); else for (i=0; i<varcount; i++) { oldoffset=offset; /* assign a variable */ var=assign(addsize(variable[i],offset), addsize(rightside[(rscount>1)?i:0],offset)); if (error) return; offset=endlocal-oldendlocal; if (oldoffset!=offset) /* size of var. changed */ { v=addsize(variable[i],offset); if (v->type==s_reference) mark=referenceof(v); else mark=submrefof(v); /* now shift all references of the var.s */ if (mark) /* not a new variable */ for (j=i+1; j<varcount; j++) { v=addsize(variable[j],offset); dif=offset-oldoffset; if (v->type==s_reference && referenceof(v)>mark) referenceof(v)=addsize(referenceof(v),dif); else if (submrefof(v)>mark) submrefof(v)=addsize(submrefof(v),dif); } } } } else /* just an expression which is a variable */ { var=getvalue(var); } if (error) return; if (*next!=';') give_out(var); if (*next==',' || *next==';') next++; }