- memcpy(pout, fileview, filesize);
- pout += filesize;
- memset(pout, 0, aligned_filesize - filesize);
- pout += aligned_filesize - filesize;
-
- this->write_symbol<size, big_endian>("", &strtab, 0, 0, &pout);
- this->write_symbol<size, big_endian>(start_symbol_name, &strtab, 0, 1,
- &pout);
- this->write_symbol<size, big_endian>(end_symbol_name, &strtab, filesize, 1,
- &pout);
- this->write_symbol<size, big_endian>(size_symbol_name, &strtab, filesize,
+ if (filesize > 0)
+ {
+ memcpy(pout, fileview, filesize);
+ pout += filesize;
+ memset(pout, 0, aligned_filesize - filesize);
+ pout += aligned_filesize - filesize;
+ }
+
+ this->write_symbol<size, big_endian>("", &strtab, 0, 0, 0, &pout);
+ this->write_symbol<size, big_endian>(start_symbol_name, &strtab, 0, filesize,
+ 1, &pout);
+ this->write_symbol<size, big_endian>(end_symbol_name, &strtab, filesize, 0,
+ 1, &pout);
+ this->write_symbol<size, big_endian>(size_symbol_name, &strtab, filesize, 0,