comparison lwasm/insn_indexed.c @ 91:95181f1ad183

Really fix memory leaks
author lost@l-w.ca
date Wed, 22 Jun 2011 19:06:14 -0600
parents e20f9d59d5da
children 6a919c3ca0e9
comparison
equal deleted inserted replaced
90:e20f9d59d5da 91:95181f1ad183
361 pb = (l -> pb & 0x80) ? 0x9D : 0x8D; 361 pb = (l -> pb & 0x80) ? 0x9D : 0x8D;
362 break; 362 break;
363 } 363 }
364 364
365 l -> pb = pb; 365 l -> pb = pb;
366 // lw_expr_destroy(e2); 366 lw_expr_destroy(e2);
367 // lw_expr_destroy(e3); 367 // lw_expr_destroy(e3);
368 return; 368 return;
369 } 369 }
370 else if ((l -> pb & 0x80) || ((l -> pb & 0x07) > 3) || v < -16 || v > 15) 370 else if ((l -> pb & 0x80) || ((l -> pb & 0x07) > 3) || v < -16 || v > 15)
371 { 371 {
399 pb = (l -> pb & 0x80) ? 0x9C : 0x8C; 399 pb = (l -> pb & 0x80) ? 0x9C : 0x8C;
400 break; 400 break;
401 } 401 }
402 402
403 l -> pb = pb; 403 l -> pb = pb;
404 lw_expr_destroy(e2);
404 return; 405 return;
405 } 406 }
406 else 407 else
407 { 408 {
408 // we have X,Y,U,S and a possible 16 bit here 409 // we have X,Y,U,S and a possible 16 bit here
415 else 416 else
416 { 417 {
417 pb = (l -> pb & 0x03) << 5 | (v & 0x1F); 418 pb = (l -> pb & 0x03) << 5 | (v & 0x1F);
418 } 419 }
419 l -> pb = pb; 420 l -> pb = pb;
421 lw_expr_destroy(e2);
420 return; 422 return;
421 } 423 }
422 lw_expr_destroy(e2); 424 }
423 } 425 lw_expr_destroy(e2);
424 } 426 }
425 427
426 if (lw_expr_istype(e, lw_expr_type_int)) 428 if (lw_expr_istype(e, lw_expr_type_int))
427 { 429 {
428 // we know how big it is 430 // we know how big it is