1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
**
** $Id: $
** $Revision: $
**
** $Filename: CloseIFF.S $
** $Author: Christian A. Weber $
** $Release: 19.1 $
** $Date: 92/05/11 21:11:27 $
**
** iff.library/IFFLib_CloseIFF
**
** COPYRIGHT (C) 1987-1992 BY CHRISTIAN A. WEBER, BRUGGERWEG 2,
** CH-8037 ZUERICH, SWITZERLAND. ALL RIGHTS RESERVED. NO PART
** OF THIS SOFTWARE MAY BE COPIED, REPRODUCED, OR TRANSMITTED
** IN ANY FORM OR BY ANY MEANS, WITHOUT THE PRIOR WRITTEN PER-
** MISSION OF THE AUTHOR. USE AT YOUR OWN RISK.
**
IDNT IFFLib_CloseIFF
SECTION text,CODE
INCLUDE "IffLib.i"
XREF ClearError
XDEF CloseIFFFunc
******* iff.library/IFFLib_CloseIFF *****************************************
*
* NAME
* IFFLib_CloseIFF -- Close an IFF-file and deallocate buffers
*
* SYNOPSIS
* IFFLib_CloseIFF( ifffile )
* A1
*
* void IFFLib_CloseIFF( IFFFILE )
*
* FUNCTION
* Returns the memory previously allocated by OpenIFF().
*
* INPUTS
* ifffile - IFF file pointer, from OpenIFF()
*
* RESULTS
* For now, always results TRUE (this may change in the future).
*
* SEE ALSO
* IFFLib_OpenIFF()
*
*****************************************************************************
CloseIFFFunc: movem.l a5-a6,-(SP)
movea.l a6,a5 ; IFFBase für ClearError()
move.l a1,d0 ; Ist a1 == NULL ?
beq.s 1$ ; ja ---> don't free anything
move.l -(a1),d0 ; Grösse des reservierten Bereichs
movea.l ib_SysBase(a5),a6
JSRLIB FreeMem
1$: bsr ClearError ; IFFError zurücksetzen, D0 := 1
movem.l (SP)+,a5-a6
rts
END
|