提交 dac6b1b2 编写于 作者: A Anthony Liguori

Merge remote-tracking branch 'stefanha/trivial-patches' into staging

* stefanha/trivial-patches:
  configure: Quote the configure args printed in config.log
  osdep: Remove local definition of macro offsetof
  libcacard: Spelling and grammar fixes in documentation
  Spelling fixes in comments (it's -> its)
  vnc: Add break statement
  libcacard: Use format specifier %u instead of %d for unsigned values
  Fix sign of sscanf format specifiers
  block/vmdk: Fix warning from splint (comparision of unsigned value)
  qmp: Fix spelling fourty -> forty
  qom: Fix spelling in documentation
  sh7750: Remove redundant 'struct' from MemoryRegionOps
...@@ -453,7 +453,7 @@ static int vmdk_open_vmdk4(BlockDriverState *bs, ...@@ -453,7 +453,7 @@ static int vmdk_open_vmdk4(BlockDriverState *bs,
} }
l1_entry_sectors = le32_to_cpu(header.num_gtes_per_gte) l1_entry_sectors = le32_to_cpu(header.num_gtes_per_gte)
* le64_to_cpu(header.granularity); * le64_to_cpu(header.granularity);
if (l1_entry_sectors <= 0) { if (l1_entry_sectors == 0) {
return -EINVAL; return -EINVAL;
} }
l1_size = (le64_to_cpu(header.capacity) + l1_entry_sectors - 1) l1_size = (le64_to_cpu(header.capacity) + l1_entry_sectors - 1)
......
...@@ -22,7 +22,9 @@ rm -f config.log ...@@ -22,7 +22,9 @@ rm -f config.log
# Print a helpful header at the top of config.log # Print a helpful header at the top of config.log
echo "# QEMU configure log $(date)" >> config.log echo "# QEMU configure log $(date)" >> config.log
echo "# produced by $0 $*" >> config.log printf "# Configured with:" >> config.log
printf " '%s'" "$0" "$@" >> config.log
echo >> config.log
echo "#" >> config.log echo "#" >> config.log
compile_object() { compile_object() {
...@@ -232,7 +234,7 @@ for opt do ...@@ -232,7 +234,7 @@ for opt do
done done
# OS specific # OS specific
# Using uname is really, really broken. Once we have the right set of checks # Using uname is really, really broken. Once we have the right set of checks
# we can eliminate it's usage altogether # we can eliminate its usage altogether.
cc="${CC-${cross_prefix}gcc}" cc="${CC-${cross_prefix}gcc}"
ar="${AR-${cross_prefix}ar}" ar="${AR-${cross_prefix}ar}"
...@@ -2524,17 +2526,6 @@ if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \ ...@@ -2524,17 +2526,6 @@ if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
fi fi
########################################## ##########################################
# check if the compiler defines offsetof
need_offsetof=yes
cat > $TMPC << EOF
#include <stddef.h>
int main(void) { struct s { int f; }; return offsetof(struct s, f); }
EOF
if compile_prog "" "" ; then
need_offsetof=no
fi
# spice probe # spice probe
if test "$spice" != "no" ; then if test "$spice" != "no" ; then
cat > $TMPC << EOF cat > $TMPC << EOF
...@@ -3199,9 +3190,6 @@ fi ...@@ -3199,9 +3190,6 @@ fi
if test "$tcg_interpreter" = "yes" ; then if test "$tcg_interpreter" = "yes" ; then
echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
fi fi
if test "$need_offsetof" = "yes" ; then
echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak
fi
if test "$fdatasync" = "yes" ; then if test "$fdatasync" = "yes" ; then
echo "CONFIG_FDATASYNC=y" >> $config_host_mak echo "CONFIG_FDATASYNC=y" >> $config_host_mak
fi fi
......
...@@ -15,7 +15,8 @@ static QEMUCursor *cursor_parse_xpm(const char *xpm[]) ...@@ -15,7 +15,8 @@ static QEMUCursor *cursor_parse_xpm(const char *xpm[])
uint8_t idx; uint8_t idx;
/* parse header line: width, height, #colors, #chars */ /* parse header line: width, height, #colors, #chars */
if (sscanf(xpm[line], "%d %d %d %d", &width, &height, &colors, &chars) != 4) { if (sscanf(xpm[line], "%u %u %u %u",
&width, &height, &colors, &chars) != 4) {
fprintf(stderr, "%s: header parse error: \"%s\"\n", fprintf(stderr, "%s: header parse error: \"%s\"\n",
__FUNCTION__, xpm[line]); __FUNCTION__, xpm[line]);
return NULL; return NULL;
......
...@@ -10,7 +10,7 @@ such as signing, card removal/insertion, etc. are mapped to real, physical ...@@ -10,7 +10,7 @@ such as signing, card removal/insertion, etc. are mapped to real, physical
cards which are shared with the client machine the emulator is running on, or cards which are shared with the client machine the emulator is running on, or
the cards could be pure software constructs. the cards could be pure software constructs.
The emulator is structured to allow multiple replacable or additional pieces, The emulator is structured to allow multiple replaceable or additional pieces,
so it can be easily modified for future requirements. The primary envisioned so it can be easily modified for future requirements. The primary envisioned
modifications are: modifications are:
...@@ -32,7 +32,7 @@ be emulated as well, including PIV, newer versions of CAC, PKCS #15, etc. ...@@ -32,7 +32,7 @@ be emulated as well, including PIV, newer versions of CAC, PKCS #15, etc.
-------------------- --------------------
Replacing the Socket Based Virtual Reader Interface. Replacing the Socket Based Virtual Reader Interface.
The current implementation contains a replacable module vscclient.c. The The current implementation contains a replaceable module vscclient.c. The
current vscclient.c implements a sockets interface to the virtual ccid reader current vscclient.c implements a sockets interface to the virtual ccid reader
on the guest. CCID commands that are pertinent to emulation are passed on the guest. CCID commands that are pertinent to emulation are passed
across the socket, and their responses are passed back along that same socket. across the socket, and their responses are passed back along that same socket.
...@@ -42,7 +42,7 @@ implements a program with a main entry. It also handles argument parsing for ...@@ -42,7 +42,7 @@ implements a program with a main entry. It also handles argument parsing for
the emulator. the emulator.
An application that wants to use the virtual reader can replace vscclient.c An application that wants to use the virtual reader can replace vscclient.c
with it's own implementation that connects to it's own CCID reader. The calls with its own implementation that connects to its own CCID reader. The calls
that the CCID reader can call are: that the CCID reader can call are:
VReaderList * vreader_get_reader_list(); VReaderList * vreader_get_reader_list();
...@@ -72,12 +72,12 @@ that the CCID reader can call are: ...@@ -72,12 +72,12 @@ that the CCID reader can call are:
VReader * vreader_list_get_reader(VReaderListEntry *) VReader * vreader_list_get_reader(VReaderListEntry *)
This function returns the reader stored in the reader List entry. Caller gets This function returns the reader stored in the reader List entry. Caller gets
a new reference to a reader. The caller must free it's reference when it is a new reference to a reader. The caller must free its reference when it is
finished with vreader_free(). finished with vreader_free().
void vreader_free(VReader *reader); void vreader_free(VReader *reader);
This function frees a reference to a reader. Reader's are reference counted This function frees a reference to a reader. Readers are reference counted
and are automatically deleted when the last reference is freed. and are automatically deleted when the last reference is freed.
void vreader_list_delete(VReaderList *list); void vreader_list_delete(VReaderList *list);
...@@ -87,7 +87,7 @@ that the CCID reader can call are: ...@@ -87,7 +87,7 @@ that the CCID reader can call are:
VReaderStatus vreader_power_on(VReader *reader, char *atr, int *len); VReaderStatus vreader_power_on(VReader *reader, char *atr, int *len);
This functions simulates a card power on. Virtual cards do not care about This function simulates a card power on. A virtual card does not care about
the actual voltage and other physical parameters, but it does care that the the actual voltage and other physical parameters, but it does care that the
card is actually on or off. Cycling the card causes the card to reset. If card is actually on or off. Cycling the card causes the card to reset. If
the caller provides enough space, vreader_power_on will return the ATR of the caller provides enough space, vreader_power_on will return the ATR of
...@@ -104,7 +104,7 @@ that the CCID reader can call are: ...@@ -104,7 +104,7 @@ that the CCID reader can call are:
unsigned char *receive_buf, unsigned char *receive_buf,
int receive_buf_len); int receive_buf_len);
This functions send a raw apdu to a card and returns the card's response. This function sends a raw apdu to a card and returns the card's response.
The CCID front end should return the response back. Most of the emulation The CCID front end should return the response back. Most of the emulation
is driven from these APDUs. is driven from these APDUs.
...@@ -217,10 +217,10 @@ the card using the following functions: ...@@ -217,10 +217,10 @@ the card using the following functions:
VCardStatus vcard_add_applet(VCard *card, VCardApplet *applet); VCardStatus vcard_add_applet(VCard *card, VCardApplet *applet);
Add an applet onto the list of applets attached to the card. Once an applet Add an applet onto the list of applets attached to the card. Once an applet
has been added, it can be selected by it's aid, and then commands will be has been added, it can be selected by its AID, and then commands will be
routed to it VCardProcessAPDU function. This function adopts the applet the routed to it VCardProcessAPDU function. This function adopts the applet that
passed int applet. Note: 2 applets with the same AID should not be added to is passed into it. Note: 2 applets with the same AID should not be added to
the same card. It's permissible to add more than one applet. Multiple applets the same card. It is permissible to add more than one applet. Multiple applets
may have the same VCardPRocessAPDU entry point. may have the same VCardPRocessAPDU entry point.
The certs and keys should be attached to private data associated with one or The certs and keys should be attached to private data associated with one or
...@@ -335,7 +335,7 @@ and applet. ...@@ -335,7 +335,7 @@ and applet.
VCard7816Status vcard_emul_login(VCard *card, unsigned char *pin, VCard7816Status vcard_emul_login(VCard *card, unsigned char *pin,
int pin_len); int pin_len);
This function logins into the card and return the standard 7816 status This function logs into the card and returns the standard 7816 status
word depending on the success or failure of the call. word depending on the success or failure of the call.
void vcard_emul_delete_key(VCardKey *key); void vcard_emul_delete_key(VCardKey *key);
...@@ -424,7 +424,7 @@ functions: ...@@ -424,7 +424,7 @@ functions:
cert_len, and keys are all arrays of length cert_count. These are the cert_len, and keys are all arrays of length cert_count. These are the
the same of the parameters xxxx_card_init() accepts. the same of the parameters xxxx_card_init() accepts.
Finally the card is associated with it's reader by the call: Finally the card is associated with its reader by the call:
VReaderStatus vreader_insert_card(VReader *vreader, VCard *vcard); VReaderStatus vreader_insert_card(VReader *vreader, VCard *vcard);
......
...@@ -888,7 +888,7 @@ static void exynos4210_ltick_event(void *opaque) ...@@ -888,7 +888,7 @@ static void exynos4210_ltick_event(void *opaque)
static uint64_t time2[2] = {0}; static uint64_t time2[2] = {0};
#endif #endif
/* Call tick_timer event handler, it will update it's tcntb and icntb */ /* Call tick_timer event handler, it will update its tcntb and icntb. */
exynos4210_ltick_timer_event(&s->tick_timer); exynos4210_ltick_timer_event(&s->tick_timer);
/* get tick_timer cnt */ /* get tick_timer cnt */
......
...@@ -712,7 +712,7 @@ static void sh7750_mmct_write(void *opaque, target_phys_addr_t addr, ...@@ -712,7 +712,7 @@ static void sh7750_mmct_write(void *opaque, target_phys_addr_t addr,
} }
} }
static const struct MemoryRegionOps sh7750_mmct_ops = { static const MemoryRegionOps sh7750_mmct_ops = {
.read = sh7750_mmct_read, .read = sh7750_mmct_read,
.write = sh7750_mmct_write, .write = sh7750_mmct_write,
.endianness = DEVICE_NATIVE_ENDIAN, .endianness = DEVICE_NATIVE_ENDIAN,
......
...@@ -283,7 +283,7 @@ static void sh_intc_write(void *opaque, target_phys_addr_t offset, ...@@ -283,7 +283,7 @@ static void sh_intc_write(void *opaque, target_phys_addr_t offset,
#endif #endif
} }
static const struct MemoryRegionOps sh_intc_ops = { static const MemoryRegionOps sh_intc_ops = {
.read = sh_intc_read, .read = sh_intc_read,
.write = sh_intc_write, .write = sh_intc_write,
.endianness = DEVICE_NATIVE_ENDIAN, .endianness = DEVICE_NATIVE_ENDIAN,
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* *
* Written by Alon Levy, with contributions from Robert Relyea. * Written by Alon Levy, with contributions from Robert Relyea.
* *
* Based on usb-serial.c, see it's copyright and attributions below. * Based on usb-serial.c, see its copyright and attributions below.
* *
* This work is licensed under the terms of the GNU GPL, version 2.1 or later. * This work is licensed under the terms of the GNU GPL, version 2.1 or later.
* See the COPYING file in the top-level directory. * See the COPYING file in the top-level directory.
......
...@@ -124,7 +124,7 @@ typedef struct InterfaceInfo InterfaceInfo; ...@@ -124,7 +124,7 @@ typedef struct InterfaceInfo InterfaceInfo;
* *
* Once all of the parent classes have been initialized, #TypeInfo::class_init * Once all of the parent classes have been initialized, #TypeInfo::class_init
* is called to let the class being instantiated provide default initialize for * is called to let the class being instantiated provide default initialize for
* it's virtual functions. Here is how the above example might be modified * its virtual functions. Here is how the above example might be modified
* to introduce an overridden virtual function: * to introduce an overridden virtual function:
* *
* <example> * <example>
...@@ -288,7 +288,7 @@ struct Object ...@@ -288,7 +288,7 @@ struct Object
* implementing an explicit class type if they are not adding additional * implementing an explicit class type if they are not adding additional
* virtual functions. * virtual functions.
* @class_init: This function is called after all parent class initialization * @class_init: This function is called after all parent class initialization
* has occured to allow a class to set its default virtual method pointers. * has occurred to allow a class to set its default virtual method pointers.
* This is also the function to use to override virtual methods from a parent * This is also the function to use to override virtual methods from a parent
* class. * class.
* @class_finalize: This function is called during class destruction and is * @class_finalize: This function is called during class destruction and is
...@@ -527,7 +527,7 @@ Type type_register_static(const TypeInfo *info); ...@@ -527,7 +527,7 @@ Type type_register_static(const TypeInfo *info);
* type_register: * type_register:
* @info: The #TypeInfo of the new type * @info: The #TypeInfo of the new type
* *
* Unlike type_register_static(), this call does not require @info or it's * Unlike type_register_static(), this call does not require @info or its
* string members to continue to exist after the call returns. * string members to continue to exist after the call returns.
* *
* Returns: 0 on failure, the new #Type on success. * Returns: 0 on failure, the new #Type on success.
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include <sys/eventfd.h> #include <sys/eventfd.h>
#endif #endif
/* KVM uses PAGE_SIZE in it's definition of COALESCED_MMIO_MAX */ /* KVM uses PAGE_SIZE in its definition of COALESCED_MMIO_MAX */
#define PAGE_SIZE TARGET_PAGE_SIZE #define PAGE_SIZE TARGET_PAGE_SIZE
//#define DEBUG_KVM //#define DEBUG_KVM
......
...@@ -66,7 +66,7 @@ send_msg( ...@@ -66,7 +66,7 @@ send_msg(
qemu_mutex_lock(&write_lock); qemu_mutex_lock(&write_lock);
if (verbose > 10) { if (verbose > 10) {
printf("sending type=%d id=%d, len =%d (0x%x)\n", printf("sending type=%d id=%u, len =%u (0x%x)\n",
type, reader_id, length, length); type, reader_id, length, length);
} }
...@@ -129,7 +129,7 @@ event_thread(void *arg) ...@@ -129,7 +129,7 @@ event_thread(void *arg)
vevent_delete(event); vevent_delete(event);
continue; continue;
} }
/* this reader hasn't been told it's status from qemu yet, wait for /* this reader hasn't been told its status from qemu yet, wait for
* that status */ * that status */
while (pending_reader != NULL) { while (pending_reader != NULL) {
qemu_cond_wait(&pending_reader_condition, &pending_reader_lock); qemu_cond_wait(&pending_reader_condition, &pending_reader_lock);
...@@ -167,7 +167,7 @@ event_thread(void *arg) ...@@ -167,7 +167,7 @@ event_thread(void *arg)
case VEVENT_READER_REMOVE: case VEVENT_READER_REMOVE:
/* future, tell qemu that an old CCID reader has been removed */ /* future, tell qemu that an old CCID reader has been removed */
if (verbose > 10) { if (verbose > 10) {
printf(" READER REMOVE: %d\n", reader_id); printf(" READER REMOVE: %u\n", reader_id);
} }
send_msg(VSC_ReaderRemove, reader_id, NULL, 0); send_msg(VSC_ReaderRemove, reader_id, NULL, 0);
break; break;
...@@ -178,7 +178,7 @@ event_thread(void *arg) ...@@ -178,7 +178,7 @@ event_thread(void *arg)
vreader_power_on(event->reader, atr, &atr_len); vreader_power_on(event->reader, atr, &atr_len);
/* ATR call functions as a Card Insert event */ /* ATR call functions as a Card Insert event */
if (verbose > 10) { if (verbose > 10) {
printf(" CARD INSERT %d: ", reader_id); printf(" CARD INSERT %u: ", reader_id);
print_byte_array(atr, atr_len); print_byte_array(atr, atr_len);
} }
send_msg(VSC_ATR, reader_id, atr, atr_len); send_msg(VSC_ATR, reader_id, atr, atr_len);
...@@ -186,7 +186,7 @@ event_thread(void *arg) ...@@ -186,7 +186,7 @@ event_thread(void *arg)
case VEVENT_CARD_REMOVE: case VEVENT_CARD_REMOVE:
/* Card removed */ /* Card removed */
if (verbose > 10) { if (verbose > 10) {
printf(" CARD REMOVE %d:\n", reader_id); printf(" CARD REMOVE %u:\n", reader_id);
} }
send_msg(VSC_CardRemove, reader_id, NULL, 0); send_msg(VSC_CardRemove, reader_id, NULL, 0);
break; break;
...@@ -256,7 +256,7 @@ do_command(void) ...@@ -256,7 +256,7 @@ do_command(void)
reader ? vreader_get_name(reader) reader ? vreader_get_name(reader)
: "invalid reader", error); : "invalid reader", error);
} else { } else {
printf("no reader by id %d found\n", reader_id); printf("no reader by id %u found\n", reader_id);
} }
} else if (strncmp(string, "remove", 6) == 0) { } else if (strncmp(string, "remove", 6) == 0) {
if (string[6] == ' ') { if (string[6] == ' ') {
...@@ -269,7 +269,7 @@ do_command(void) ...@@ -269,7 +269,7 @@ do_command(void)
reader ? vreader_get_name(reader) reader ? vreader_get_name(reader)
: "invalid reader", error); : "invalid reader", error);
} else { } else {
printf("no reader by id %d found\n", reader_id); printf("no reader by id %u found\n", reader_id);
} }
} else if (strncmp(string, "select", 6) == 0) { } else if (strncmp(string, "select", 6) == 0) {
if (string[6] == ' ') { if (string[6] == ' ') {
...@@ -280,11 +280,11 @@ do_command(void) ...@@ -280,11 +280,11 @@ do_command(void)
reader = vreader_get_reader_by_id(reader_id); reader = vreader_get_reader_by_id(reader_id);
} }
if (reader) { if (reader) {
printf("Selecting reader %d, %s\n", reader_id, printf("Selecting reader %u, %s\n", reader_id,
vreader_get_name(reader)); vreader_get_name(reader));
default_reader_id = reader_id; default_reader_id = reader_id;
} else { } else {
printf("Reader with id %d not found\n", reader_id); printf("Reader with id %u not found\n", reader_id);
} }
} else if (strncmp(string, "debug", 5) == 0) { } else if (strncmp(string, "debug", 5) == 0) {
if (string[5] == ' ') { if (string[5] == ' ') {
...@@ -303,7 +303,7 @@ do_command(void) ...@@ -303,7 +303,7 @@ do_command(void)
if (reader_id == -1) { if (reader_id == -1) {
continue; continue;
} }
printf("%3d %s %s\n", reader_id, printf("%3u %s %s\n", reader_id,
vreader_card_is_present(reader) == VREADER_OK ? vreader_card_is_present(reader) == VREADER_OK ?
"CARD_PRESENT" : " ", "CARD_PRESENT" : " ",
vreader_get_name(reader)); vreader_get_name(reader));
...@@ -563,7 +563,7 @@ main( ...@@ -563,7 +563,7 @@ main(
mhHeader.reader_id = ntohl(mhHeader.reader_id); mhHeader.reader_id = ntohl(mhHeader.reader_id);
mhHeader.length = ntohl(mhHeader.length); mhHeader.length = ntohl(mhHeader.length);
if (verbose) { if (verbose) {
printf("Header: type=%d, reader_id=%d length=%d (0x%x)\n", printf("Header: type=%d, reader_id=%u length=%d (0x%x)\n",
mhHeader.type, mhHeader.reader_id, mhHeader.length, mhHeader.type, mhHeader.reader_id, mhHeader.length,
mhHeader.length); mhHeader.length);
} }
......
...@@ -2700,7 +2700,7 @@ get_sigframe(struct target_sigaction *ka, CPUState *regs, size_t frame_size) ...@@ -2700,7 +2700,7 @@ get_sigframe(struct target_sigaction *ka, CPUState *regs, size_t frame_size)
sp = regs->active_tc.gpr[29]; sp = regs->active_tc.gpr[29];
/* /*
* FPU emulator may have it's own trampoline active just * FPU emulator may have its own trampoline active just
* above the user stack, 16-bytes before the next lowest * above the user stack, 16-bytes before the next lowest
* 16 byte boundary. Try to avoid trashing it. * 16 byte boundary. Try to avoid trashing it.
*/ */
......
...@@ -26,9 +26,6 @@ ...@@ -26,9 +26,6 @@
#define unlikely(x) __builtin_expect(!!(x), 0) #define unlikely(x) __builtin_expect(!!(x), 0)
#endif #endif
#ifdef CONFIG_NEED_OFFSETOF
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
#endif
#ifndef container_of #ifndef container_of
#define container_of(ptr, type, member) ({ \ #define container_of(ptr, type, member) ({ \
const typeof(((type *) 0)->member) *__mptr = (ptr); \ const typeof(((type *) 0)->member) *__mptr = (ptr); \
......
...@@ -47,7 +47,7 @@ typedef int (QEMUFileGetBufferFunc)(void *opaque, uint8_t *buf, ...@@ -47,7 +47,7 @@ typedef int (QEMUFileGetBufferFunc)(void *opaque, uint8_t *buf,
*/ */
typedef int (QEMUFileCloseFunc)(void *opaque); typedef int (QEMUFileCloseFunc)(void *opaque);
/* Called to determine if the file has exceeded it's bandwidth allocation. The /* Called to determine if the file has exceeded its bandwidth allocation. The
* bandwidth capping is a soft limit, not a hard limit. * bandwidth capping is a soft limit, not a hard limit.
*/ */
typedef int (QEMUFileRateLimit)(void *opaque); typedef int (QEMUFileRateLimit)(void *opaque);
......
...@@ -1930,7 +1930,7 @@ target_ulong helper_evpe(void) ...@@ -1930,7 +1930,7 @@ target_ulong helper_evpe(void)
do { do {
if (other_cpu != env if (other_cpu != env
/* If the VPE is WFI, dont distrub it's sleep. */ /* If the VPE is WFI, don't disturb its sleep. */
&& !mips_vpe_is_wfi(other_cpu)) { && !mips_vpe_is_wfi(other_cpu)) {
/* Enable the VPE. */ /* Enable the VPE. */
other_cpu->mvp->CP0_MVPControl |= (1 << CP0MVPCo_EVP); other_cpu->mvp->CP0_MVPControl |= (1 << CP0MVPCo_EVP);
......
...@@ -221,8 +221,8 @@ static void test_visitor_out_struct_nested(TestOutputVisitorData *data, ...@@ -221,8 +221,8 @@ static void test_visitor_out_struct_nested(TestOutputVisitorData *data,
QObject *obj; QObject *obj;
QDict *qdict, *dict1, *dict2, *dict3, *userdef; QDict *qdict, *dict1, *dict2, *dict3, *userdef;
const char *string = "user def string"; const char *string = "user def string";
const char *strings[] = { "fourty two", "fourty three", "fourty four", const char *strings[] = { "forty two", "forty three", "forty four",
"fourty five" }; "forty five" };
ud2 = g_malloc0(sizeof(*ud2)); ud2 = g_malloc0(sizeof(*ud2));
ud2->string0 = g_strdup(strings[0]); ud2->string0 = g_strdup(strings[0]);
......
...@@ -175,6 +175,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs, ...@@ -175,6 +175,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
/* we really don't have to invalidate either the bg or fg /* we really don't have to invalidate either the bg or fg
but we've lost the old values. oh well. */ but we've lost the old values. oh well. */
} }
break;
default: default:
break; break;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册