Esempio n. 1
0
/******************************************************************************
*   This routine should be called last, to close the GIF file.		      *
******************************************************************************/
int DGifCloseFile(GifFileType *GifFile)
{
    GifFilePrivateType *Private;
    FILE *File;

    if (GifFile == NULL) return GIF_ERROR;

    Private = (GifFilePrivateType *) GifFile->Private;

    if (!IS_READABLE(Private)) {
	/* This file was NOT open for reading: */
	_GifError = D_GIF_ERR_NOT_READABLE;
	return GIF_ERROR;
    }

    File = Private->File;

    if (GifFile->Image.ColorMap)
	FreeMapObject(GifFile->Image.ColorMap);
    if (GifFile->SColorMap)
	FreeMapObject(GifFile->SColorMap);
    if (Private)
	free((char *) Private);
    if (GifFile->SavedImages)
	FreeSavedImages(GifFile);
    free(GifFile);

    if ( File && (fclose(File) != 0)) {
	  _GifError = D_GIF_ERR_CLOSE_FAILED;
	  return GIF_ERROR;
    }
    return GIF_OK;
}
Esempio n. 2
0
/******************************************************************************
 * This routine should be called last, to close the GIF file.
 *****************************************************************************/
int
DGifCloseFile(GifFileType * GifFile) {

    GifFilePrivateType *Private;

    if (GifFile == NULL)
        return GIF_ERROR;

    Private = GifFile->Private;

    if (GifFile->Image.ColorMap) {
        FreeMapObject(GifFile->Image.ColorMap);
        GifFile->Image.ColorMap = NULL;
    }

    if (GifFile->SColorMap) {
        FreeMapObject(GifFile->SColorMap);
        GifFile->SColorMap = NULL;
    }

    ungif_free(Private);
    Private = NULL;

    if (GifFile->SavedImages) {
        FreeSavedImages(GifFile);
        GifFile->SavedImages = NULL;
    }

    FreeExtension(&GifFile->Extensions);

    ungif_free(GifFile);

    return GIF_OK;
}
Esempio n. 3
0
static int DGifCloseFile(GifFileType * GifFile)
{
	GifFilePrivateType *Private;
	FILE *File;

	if (GifFile == NULL)
		return GIF_ERROR;

	Private = (GifFilePrivateType *) GifFile->Private;

	if (!IS_READABLE(Private))
	{
		_GifError = D_GIF_ERR_NOT_READABLE;
		return GIF_ERROR;
	}

	File = Private->File;

	if (GifFile->Image.ColorMap)
	{
		FreeMapObject(GifFile->Image.ColorMap);
		GifFile->Image.ColorMap = NULL;
	}

	if (GifFile->SColorMap)
	{
		FreeMapObject(GifFile->SColorMap);
		GifFile->SColorMap = NULL;
	}

	if (Private)
	{
		gif_free((char *) Private);
		Private = NULL;
	}

	if (GifFile->SavedImages)
	{
		FreeSavedImages(GifFile);
		GifFile->SavedImages = NULL;
	}

	gif_free(GifFile);

	if (File && (fclose(File) != 0))
	{
		_GifError = D_GIF_ERR_CLOSE_FAILED;
		return GIF_ERROR;
	}
	return GIF_OK;
}
Esempio n. 4
0
/******************************************************************************
*   This routine should be called last, to close the GIF file.		      *
******************************************************************************/
int DGifCloseFile(GifFileType *GifFile)
{
    GifFilePrivateType *Private;
    FILE *File;
	int ret = GIF_OK;

    if (GifFile == NULL) return GIF_ERROR;

    Private = (GifFilePrivateType *) GifFile->Private;

    if (!IS_READABLE(Private)) {
		/* This file was NOT open for reading: */
		_GifError = D_GIF_ERR_NOT_READABLE;
		ret = GIF_ERROR; /* we have to free everything regardless */
    }

    File = Private->File;

    if (GifFile->Image.ColorMap)
    {
		FreeMapObject(GifFile->Image.ColorMap);
        GifFile->Image.ColorMap = NULL;
    }

    if (GifFile->SColorMap)
    {
		FreeMapObject(GifFile->SColorMap);
		GifFile->SColorMap = NULL;
    }

    if (Private)
    {
		free((char *) Private);
		GifFile->Private = NULL;
    }

    if (GifFile->SavedImages)
    {
		FreeSavedImages(GifFile);
		GifFile->SavedImages = NULL;
    }

    free(GifFile);

    if ( File && (fclose(File) != 0)) 
	{
	  	_GifError = D_GIF_ERR_CLOSE_FAILED;
		ret = GIF_ERROR;
    }
    return ret;
}
Esempio n. 5
0
void GifFree(GifFileType * GifFile)
{
    GifFilePrivateType *Private;

    if (GifFile == NULL)
        return;

    Private = (GifFilePrivateType *) GifFile->Private;

    if (GifFile->SavedImages)
        FreeSavedImages(GifFile);
    if (GifFile->Image.ColorMap)
        FreeMapObject(GifFile->Image.ColorMap);
    if (GifFile->SColorMap)
        FreeMapObject(GifFile->SColorMap);
    if (Private) {
        free(Private);
    }
    if (GifFile->GifIO)
        free(GifFile->GifIO);
    free(GifFile);
}