static void geninittype P2 (const EXPR *, ep, unsigned char *, data) { TYP *tp = ep->etp; UVAL uval; #ifdef FLOAT_SUPPORT RVAL rvl; #endif /* FLOAT_SUPPORT */ UNUSEDARG (data); switch (tp->type) { case bt_bool: put_char (ep); break; case bt_char: case bt_charu: case bt_uchar: case bt_schar: put_char (ep); break; case bt_short: case bt_ushort: case bt_int16: case bt_uint16: put_short (ep); break; case bt_pointer16: case bt_pointer32: break; case bt_bitfield: case bt_ubitfield: case bt_bbitfield: uval = ep->v.u & bitmask (bitfield_width (tp)); break; case bt_int32: case bt_uint32: case bt_ulong: case bt_long: put_long (ep); break; case bt_struct: break; case bt_union: break; #ifdef FLOAT_SUPPORT case bt_float: floatexpr (tp, &rvl); put_float (&rvl); break; case bt_double: floatexpr (tp, &rvl); put_double (&rval); break; case bt_longdouble: floatexpr (tp, &rvl); put_longdouble (&rvl); break; #endif /* FLOAT_SUPPORT */ case bt_func: break; default: break; } }
CORBA_boolean porbit_put_sv (GIOPSendBuffer *buf, CORBA_TypeCode tc, SV *sv) { switch (tc->kind) { case CORBA_tk_null: case CORBA_tk_void: return CORBA_TRUE; case CORBA_tk_short: return put_short (buf, sv); case CORBA_tk_long: return put_long (buf, sv); case CORBA_tk_ushort: return put_ushort (buf, sv); case CORBA_tk_ulong: return put_ulong (buf, sv); case CORBA_tk_float: return put_float (buf, sv); case CORBA_tk_double: return put_double (buf, sv); case CORBA_tk_char: return put_char (buf, sv); case CORBA_tk_boolean: return put_boolean (buf, sv); case CORBA_tk_octet: return put_octet (buf, sv); case CORBA_tk_enum: return put_enum (buf, tc, sv); case CORBA_tk_struct: return put_struct (buf, tc, sv); case CORBA_tk_sequence: return put_sequence (buf, tc, sv); case CORBA_tk_except: return put_except (buf, tc, sv); case CORBA_tk_objref: return put_objref (buf, tc, sv); case CORBA_tk_union: return put_union (buf, tc, sv); case CORBA_tk_alias: return put_alias (buf, tc, sv); case CORBA_tk_string: return put_string (buf, tc, sv); case CORBA_tk_array: return put_array (buf, tc, sv); case CORBA_tk_longlong: return put_longlong (buf, sv); case CORBA_tk_ulonglong: return put_ulonglong (buf, sv); case CORBA_tk_longdouble: return put_longdouble (buf, sv); case CORBA_tk_TypeCode: return put_typecode (buf, tc, sv); case CORBA_tk_any: return put_any (buf, tc, sv); case CORBA_tk_fixed: return put_fixed (buf, tc, sv); case CORBA_tk_wchar: case CORBA_tk_wstring: case CORBA_tk_Principal: default: warn ("Unsupported output typecode %d\n", tc->kind); return CORBA_FALSE; } }