pcc->pc.destruct = genericDestruct;
pcc->pc.print = genericPrint;
- pcc->comment = Safe_strdup(cP);
+ if(cP)
+ pcc->comment = Safe_strdup(cP);
+ else
+ pcc->comment = NULL;
return ( (pCode *)pcc);
pcl->key = key;
+ pcl->label = NULL;
if(key>0) {
sprintf(s,"_%05d_DS_",key);
- pcl->label = Safe_strdup(s);
- } else
- pcl->label = NULL;
+ if(s)
+ pcl->label = Safe_strdup(s);
+ }
+
return ( (pCode *)pcl);
{
pCode *pc = newpCodeLabel(-1);
- PCL(pc)->label = Safe_strdup(str);
+ if(str)
+ PCL(pc)->label = Safe_strdup(str);
+ else
+ PCL(pc)->label = NULL;
return pc;
}
pcop = Safe_calloc(1,sizeof(pCodeOpLabel) );
pcop->type = PO_LABEL;
+ pcop->name = NULL;
if(key>0) {
sprintf(s,"_%05d_DS_",key);
- pcop->name = Safe_strdup(s);
- } else
- pcop->name = NULL;
+ if(s)
+ pcop->name = Safe_strdup(s);
+ }
+
((pCodeOpLabel *)pcop)->key = key;
pcop = Safe_calloc(1,sizeof(pCodeOpLit) );
pcop->type = PO_LITERAL;
+ pcop->name = NULL;
if(lit>=0) {
sprintf(s,"0x%02x",lit);
- pcop->name = Safe_strdup(s);
- } else
- pcop->name = NULL;
+ if(s)
+ pcop->name = Safe_strdup(s);
+ }
+
((pCodeOpLit *)pcop)->lit = lit;
pcop = Safe_calloc(1,sizeof(pCodeOpBit) );
pcop->type = PO_BIT;
- pcop->name = Safe_strdup(s);
+ if(s)
+ pcop->name = Safe_strdup(s);
+ else
+ pcop->name = NULL;
PCOB(pcop)->bit = bit;
PCOB(pcop)->inBitSpace = inBitSpace;
default:
pcop = Safe_calloc(1,sizeof(pCodeOp) );
pcop->type = type;
- pcop->name = Safe_strdup(name);
+ if(name)
+ pcop->name = Safe_strdup(name);
+ else
+ pcop->name = NULL;
}
return pcop;
r1->rIdx, newreg->rIdx);
r2->rIdx = newreg->rIdx;
//if(r2->name) free(r2->name);
- r2->name = Safe_strdup(newreg->name);
+ if(newreg->name)
+ r2->name = Safe_strdup(newreg->name);
+ else
+ r2->name = NULL;
newreg->isFree = 0;
newreg->wasUsed = 1;
}
r1->rIdx, newreg->rIdx);
r2->rIdx = newreg->rIdx;
//if(r2->name) free(r2->name);
- r2->name = Safe_strdup(newreg->name);
+ if(newreg->name)
+ r2->name = Safe_strdup(newreg->name);
+ else
+ r2->name = NULL;
newreg->isFree = 0;
newreg->wasUsed = 1;
}