# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1324936353 0 # Node ID c6ab88dcf016b452863205e082f2c9c71cf11241 # Parent 79c99c612725935181956c3239ee8e8ac06738c7 Allow dw_container_change/set_item() to accept NULL on OS/2. diff -r 79c99c612725 -r c6ab88dcf016 os2/dw.c --- a/os2/dw.c Mon Dec 26 21:40:35 2011 +0000 +++ b/os2/dw.c Mon Dec 26 21:52:33 2011 +0000 @@ -8378,7 +8378,7 @@ ULONG totalsize, size = 0, *flags = blah ? blah->data : 0; int z, currentcount; CNRINFO cnr; - void *dest; + void *dest; if(!flags) return; @@ -8411,7 +8411,12 @@ dest = (void *)(((ULONG)temp)+((ULONG)totalsize)); if(flags[column] & DW_CFA_BITMAPORICON) - memcpy(dest, data, sizeof(HPOINTER)); + { + if(data) + memcpy(dest, data, sizeof(HPOINTER)); + else + memset(dest, 0, sizeof(HPOINTER)); + } else if(flags[column] & DW_CFA_STRING) { char **newstr = (char **)data, **str = dest; @@ -8425,11 +8430,26 @@ *str = NULL; } else if(flags[column] & DW_CFA_ULONG) - memcpy(dest, data, sizeof(ULONG)); + { + if(data) + memcpy(dest, data, sizeof(ULONG)); + else + memset(dest, 0, sizeof(ULONG)); + } else if(flags[column] & DW_CFA_DATE) - memcpy(dest, data, sizeof(CDATE)); + { + if(data) + memcpy(dest, data, sizeof(CDATE)); + else + memset(dest, 0, sizeof(CDATE)); + } else if(flags[column] & DW_CFA_TIME) - memcpy(dest, data, sizeof(CTIME)); + { + if(data) + memcpy(dest, data, sizeof(CTIME)); + else + memset(dest, 0, sizeof(CTIME)); + } } /* Internal function that free()s any strings allocated for a container item */