--- psiconv/trunk/lib/psiconv/generate_image.c 2003/11/25 22:08:48 170 +++ psiconv/trunk/lib/psiconv/generate_image.c 2003/11/26 20:56:17 171 @@ -304,7 +304,7 @@ int psiconv_write_sketch_section(const psiconv_config config, psiconv_buffer buf, - psiconv_sketch_section value) + const psiconv_sketch_section value) { int res; @@ -354,3 +354,34 @@ ERROR1: return res; } + +int psiconv_write_jumptable_section(const psiconv_config config, + psiconv_buffer buf, + const psiconv_jumptable_section value) +{ + int res,i; + psiconv_u32 *offset_ptr; + + + if (!value) { + psiconv_warn(config,0,psiconv_buffer_length(buf), + "NULL Jumptable Section"); + res = -PSICONV_E_GENERATE; + goto ERROR; + } + if ((res = psiconv_write_u32(config,buf,psiconv_list_length(value)))) + goto ERROR; + for (i = 0; i < psiconv_list_length(value); i++) { + if (!(offset_ptr = psiconv_list_get(value,i))) { + psiconv_warn(config,0,psiconv_buffer_length(buf), + "Massive memory corruption"); + res = -PSICONV_E_NOMEM; + goto ERROR; + } + if ((res = psiconv_write_offset(config,buf,*offset_ptr))) + goto ERROR; + } + +ERROR: + return res; +}