Exemplo n.º 1
0
void NXCloseMemory(register NXStream *s, int option)
{
    int userBuf;
    int isCheapStream;

    _NXVerifyStream(s);
    verify_memory_stream(s);
    isCheapStream = (s->functions == &cheap_functions) ? 1:0;
    userBuf = (s->flags & NX_USER_OWNS_BUF) != 0;
    if (!userBuf) {
	switch (option) {
	    case NX_FREEBUFFER:
		if (isCheapStream && s->buf_size < MAX_MALLOC)
		    free(s->buf_base);
		else {
		    kern_return_t ret = vm_deallocate(mach_task_self(),
			(vm_offset_t)s->buf_base, (vm_size_t)s->buf_size);
		    if (ret != KERN_SUCCESS)
			NX_RAISE(NX_streamVMError, s, (void *)ret);
		}
		break;
	    case NX_TRUNCATEBUFFER:
		if (!isCheapStream || s->buf_size >= MAX_MALLOC)
		    memory_close(s);
		break;
	    case NX_SAVEBUFFER: break;
	}
    }
    NXStreamDestroy(s);
}
Exemplo n.º 2
0
void z_output_stream (void)
{

    flush_buffer ();

    switch ((short) zargs[0]) {

    case  1: ostream_screen = TRUE;
	     break;
    case -1: ostream_screen = FALSE;
	     break;
    case  2: if (!ostream_script) script_open ();
	     break;
    case -2: if (ostream_script) script_close ();
	     break;
    case  3: memory_open (zargs[1], zargs[2], zargc >= 3);
	     break;
    case -3: memory_close ();
	     break;
    case  4: if (!ostream_record) record_open ();
	     break;
    case -4: if (ostream_record) record_close ();
	     break;

    }

}/* z_output_stream */
Exemplo n.º 3
0
void Processor::z_output_stream() {
	flush_buffer();

	switch ((short) zargs[0]) {
	case  1: ostream_screen = true;
		 break;
	case -1: ostream_screen = false;
		 break;
	case  2: if (!ostream_script) script_open();
		 break;
	case -2: if (ostream_script) script_close();
		 break;
	case  3: memory_open(zargs[1], zargs[2], zargc >= 3);
		 break;
	case -3: memory_close();
		 break;
	case  4: if (!ostream_record) record_open();
		 break;
	case -4: if (ostream_record) record_close();
		 break;
	default:
		break;
	}
}