png_uint_32 num_bytes = (png_uint_32)items * size;
png_zalloc(voidpf png_ptr, uInt items, uInt size){   png_uint_32 num_bytes = (png_uint_32)items * size;   png_voidp ptr;   png_structp p=png_ptr;   png_uint_32 save_flags=p->flags;   p->flags|=PNG_FLAG_MALLOC_NULL_MEM_OK;   ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes);   p->flags=save_flags;#ifndef PNG_NO_ZALLOC_ZERO   if (ptr == NULL)       return ((voidpf)ptr);   if (num_bytes > (png_uint_32)0x8000L)   {      png_memset(ptr, 0, (png_size_t)0x8000L);      png_memset((png_bytep)ptr + (png_size_t)0x8000L, 0,         (png_size_t)(num_bytes - (png_uint_32)0x8000L));   }   else   {      png_memset(ptr, 0, (png_size_t)num_bytes);   }#endif   return ((voidpf)ptr);}