コード例 #1
0
static void fileClose(struct _CFStream *stream, void *info) {
    _CFFileStreamContext *ctxt = (_CFFileStreamContext *)info;
    if (ctxt->fd >= 0) {
        close(ctxt->fd);
        ctxt->fd = -1;
#ifdef REAL_FILE_SCHEDULING
        if (ctxt->rlInfo.cffd) {
            CFFileDescriptorInvalidate(ctxt->rlInfo.cffd);
            CFRelease(ctxt->rlInfo.cffd);
            ctxt->rlInfo.cffd = NULL;
        }
    } else if (ctxt->rlInfo.rlArray) {
        CFRelease(ctxt->rlInfo.rlArray);
        ctxt->rlInfo.rlArray = NULL;
#endif
    }
}
コード例 #2
0
static void fileFinalize(struct _CFStream *stream, void *info) {
    _CFFileStreamContext *ctxt = (_CFFileStreamContext *)info;
    if (ctxt->fd > 0) {
#ifdef REAL_FILE_SCHEDULING
        if (ctxt->rlInfo.cffd) {
            CFFileDescriptorInvalidate(ctxt->rlInfo.cffd); 
            CFRelease(ctxt->rlInfo.cffd);
            ctxt->rlInfo.cffd = NULL;
        }
#endif
        close(ctxt->fd);
#ifdef REAL_FILE_SCHEDULING
    } else if (ctxt->rlInfo.rlArray) {
        CFRelease(ctxt->rlInfo.rlArray);
#endif
    }
    if (ctxt->url) {
        CFRelease(ctxt->url);
    }
    CFAllocatorDeallocate(CFGetAllocator(stream), ctxt);
}
コード例 #3
0
ファイル: FskFilesMac.c プロジェクト: Kazu-zamasu/kinomajs
FskErr FskFSDirectoryChangeNotifierDispose(FskDirectoryChangeNotifier dirChangeNotifier)
{
	FskFSDirectoryChangeNotifier directoryChangeNotifier;

	if (dirChangeNotifier == NULL) return kFskErrInvalidParameter;
	directoryChangeNotifier = (FskFSDirectoryChangeNotifier)dirChangeNotifier;

	if (directoryChangeNotifier->dirKQRef != NULL)
	{
		CFFileDescriptorInvalidate(directoryChangeNotifier->dirKQRef);
		CFRelease(directoryChangeNotifier->dirKQRef);
	}

	if(directoryChangeNotifier->dirFD != -1)
	{
		close(directoryChangeNotifier->dirFD);
	}
	FskMemPtrDispose(directoryChangeNotifier->path);
	FskMemPtrDispose(directoryChangeNotifier);

	return kFskErrNone;
}