Changes in uspace/app/sbi/src/rdata.c [074444f:23de644] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/sbi/src/rdata.c
r074444f r23de644 51 51 #include "mytypes.h" 52 52 #include "stree.h" 53 #include "symbol.h"54 53 55 54 #include "rdata.h" 56 55 57 static void rdata_bool_copy(rdata_bool_t *src, rdata_bool_t **dest);58 static void rdata_char_copy(rdata_char_t *src, rdata_char_t **dest);59 56 static void rdata_int_copy(rdata_int_t *src, rdata_int_t **dest); 60 57 static void rdata_string_copy(rdata_string_t *src, rdata_string_t **dest); … … 290 287 } 291 288 292 /** Allocate new boolean.293 *294 * @return New boolean.295 */296 rdata_bool_t *rdata_bool_new(void)297 {298 rdata_bool_t *bool_v;299 300 bool_v = calloc(1, sizeof(rdata_bool_t));301 if (bool_v == NULL) {302 printf("Memory allocation failed.\n");303 exit(1);304 }305 306 return bool_v;307 }308 309 /** Allocate new character.310 *311 * @return New character.312 */313 rdata_char_t *rdata_char_new(void)314 {315 rdata_char_t *char_v;316 317 char_v = calloc(1, sizeof(rdata_char_t));318 if (char_v == NULL) {319 printf("Memory allocation failed.\n");320 exit(1);321 }322 323 return char_v;324 }325 326 289 /** Allocate new integer. 327 290 * … … 435 398 436 399 switch (src->vc) { 437 case vc_bool:438 rdata_bool_copy(src->u.bool_v, &nvar->u.bool_v);439 break;440 case vc_char:441 rdata_char_copy(src->u.char_v, &nvar->u.char_v);442 break;443 400 case vc_int: 444 401 rdata_int_copy(src->u.int_v, &nvar->u.int_v); … … 465 422 466 423 *dest = nvar; 467 }468 469 /** Copy boolean.470 *471 * @param src Source boolean.472 * @param dest Place to store pointer to new boolean.473 */474 static void rdata_bool_copy(rdata_bool_t *src, rdata_bool_t **dest)475 {476 *dest = rdata_bool_new();477 (*dest)->value = src->value;478 }479 480 /** Copy character.481 *482 * @param src Source character.483 * @param dest Place to store pointer to new character.484 */485 static void rdata_char_copy(rdata_char_t *src, rdata_char_t **dest)486 {487 *dest = rdata_char_new();488 bigint_clone(&src->value, &(*dest)->value);489 424 } 490 425 … … 615 550 var->vc = nvar->vc; 616 551 switch (nvar->vc) { 617 case vc_bool: var->u.bool_v = nvar->u.bool_v; break;618 case vc_char: var->u.char_v = nvar->u.char_v; break;619 552 case vc_int: var->u.int_v = nvar->u.int_v; break; 620 553 case vc_string: var->u.string_v = nvar->u.string_v; break; … … 688 621 static void rdata_var_print(rdata_var_t *var) 689 622 { 690 int val;691 692 623 switch (var->vc) { 693 case vc_bool:694 printf("bool(%s)", var->u.bool_v->value ? "true" : "false");695 break;696 case vc_char:697 printf("char(");698 if (bigint_get_value_int(&var->u.char_v->value, &val) == EOK)699 printf("'%c'", val);700 else701 printf("???:x%x\n", (unsigned) val);702 printf(")");703 break;704 624 case vc_int: 705 625 printf("int("); … … 711 631 break; 712 632 case vc_ref: 713 printf("ref("); 714 rdata_var_print(var->u.ref_v->vref); 715 printf(")"); 633 printf("ref"); 716 634 break; 717 635 case vc_deleg: 718 printf("deleg("); 719 if (var->u.deleg_v->obj != NULL) { 720 rdata_var_print(var->u.deleg_v->obj); 721 printf(","); 722 } 723 symbol_print_fqn(var->u.deleg_v->sym); 724 printf(")"); 725 break; 726 case vc_array: 727 printf("array"); 636 printf("deleg"); 728 637 break; 729 638 case vc_object: 730 639 printf("object"); 731 640 break; 732 case vc_resource:733 printf(" resource(%p)", var->u.resource_v->data);734 break;735 } 736 } 641 default: 642 printf("print(%d)\n", var->vc); 643 assert(b_false); 644 } 645 }
Note:
See TracChangeset
for help on using the changeset viewer.