Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/sbi/src/rdata.c

    r074444f r23de644  
    5151#include "mytypes.h"
    5252#include "stree.h"
    53 #include "symbol.h"
    5453
    5554#include "rdata.h"
    5655
    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);
    5956static void rdata_int_copy(rdata_int_t *src, rdata_int_t **dest);
    6057static void rdata_string_copy(rdata_string_t *src, rdata_string_t **dest);
     
    290287}
    291288
    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 
    326289/** Allocate new integer.
    327290 *
     
    435398
    436399        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;
    443400        case vc_int:
    444401                rdata_int_copy(src->u.int_v, &nvar->u.int_v);
     
    465422
    466423        *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);
    489424}
    490425
     
    615550        var->vc = nvar->vc;
    616551        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;
    619552        case vc_int: var->u.int_v = nvar->u.int_v; break;
    620553        case vc_string: var->u.string_v = nvar->u.string_v; break;
     
    688621static void rdata_var_print(rdata_var_t *var)
    689622{
    690         int val;
    691 
    692623        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                 else
    701                         printf("???:x%x\n", (unsigned) val);
    702                 printf(")");
    703                 break;
    704624        case vc_int:
    705625                printf("int(");
     
    711631                break;
    712632        case vc_ref:
    713                 printf("ref(");
    714                 rdata_var_print(var->u.ref_v->vref);
    715                 printf(")");
     633                printf("ref");
    716634                break;
    717635        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");
    728637                break;
    729638        case vc_object:
    730639                printf("object");
    731640                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.