558,7 → 558,7 |
; ebx= size of file |
; |
; warging |
; You mast call kernel_free() to delete each file |
; You mast call mem_free() to delete each file |
; loaded by the load_file() function |
|
align 4 |
636,7 → 636,8 |
pop esi |
ret |
.cleanup: |
stdcall kernel_free, [file] |
mov ecx, [file] |
call @mem_free@4 |
.fail: |
xor eax, eax |
xor ebx, ebx |
826,12 → 827,10 |
mov dword [edi], '.obj' |
mov byte [edi+4], 0 |
stdcall load_file, edx |
|
mov [coff], eax |
test eax, eax |
jz .exit |
|
mov [coff], eax |
|
movzx ebx, [eax+CFH.nSections] |
lea edx, [eax+20] |
xor ecx, ecx |
847,6 → 846,7 |
mov edx, PG_SW |
call @mem_alloc@8 |
test eax, eax |
mov [img_base], eax |
jz .fail |
|
mov [img_base], eax |
923,7 → 923,8 |
stdcall get_coff_sym,[sym],[ebx+CFH.nSymbols],szSTART |
mov [start], eax |
|
stdcall kernel_free, [coff] |
mov ecx, [coff] |
call @mem_free@4 |
|
mov ebx, [start] |
stdcall ebx, DRV_ENTRY |
930,7 → 931,8 |
test eax, eax |
jnz .ok |
|
stdcall kernel_free, [img_base] |
mov ecx, [img_base] |
call @mem_free@4 |
xor eax, eax |
ret |
.ok: |
961,9 → 963,11 |
mov esi, msg_CR |
call sys_msg_board_str |
.cleanup: |
stdcall kernel_free,[img_base] |
mov ecx, [img_base] |
call @mem_free@4 |
.fail: |
stdcall kernel_free, [coff] |
mov ecx, [coff] |
call @mem_free@4 |
.exit: |
xor eax, eax |
ret |
1065,7 → 1069,9 |
stdcall get_coff_sym,[sym],[ebx+CFH.nSymbols],szEXPORTS |
mov [exports], eax |
|
stdcall kernel_free, [coff] |
mov ecx, [coff] |
call @mem_free@4 |
|
mov eax, [exports] |
ret |
.fail: |