static int mixin_getbuffer(PyObject *self, Py_buffer *view_p, int flags) { PyObject *py_view = Buffer_New(view_p, 0, 1); PyObject *py_rval = 0; int rval = -1; if (py_view) { view_p->obj = 0; py_rval = PyObject_CallMethod(self, "_get_buffer", "(Oi)", py_view, flags); Buffer_Reset((BufferObject *)py_view); Py_DECREF(py_view); if (py_rval == Py_None) { rval = 0; Py_DECREF(py_rval); } else if (py_rval) { PyErr_SetString(PyExc_ValueError, "_get_buffer method return value was not None"); Py_DECREF(py_rval); } } return rval; }
byte * _CfrTil_UsingToString ( ) { Buffer * buffer = Buffer_New ( BUFFER_SIZE ) ; byte * b = Buffer_Data ( buffer ) ; strcpy ( ( char* ) b, "" ) ; _Tree_Map_State_2 ( _Q_->OVT_CfrTil->Namespaces->Lo_List, USING, ( MapSymbolFunction2 ) _Namespace_Symbol_Print, 0, ( int32 ) b ) ; b = String_New ( ( byte* ) b, TEMPORARY ) ; Buffer_SetAsUnused ( buffer ) ; return b ; }
void _CfrTil_SystemState_Print ( int32 pflag ) { Buffer * buffer = Buffer_New ( BUFFER_SIZE ) ; char * buf = ( char* ) Buffer_Data ( buffer ) ; buf = _CfrTil_GetSystemState_String0 ( buf ) ; Printf ( ( byte* ) buf ) ; buf = _CfrTil_GetSystemState_String1 ( buf ) ; Printf ( ( byte* ) buf ) ; if ( pflag ) OpenVmTil_Print_DataSizeofInfo ( pflag ) ; Buffer_SetAsUnused ( buffer ) ; }
void ReadLine_DeleteChar ( ReadLiner * rl ) { Buffer * buffer = Buffer_New ( BUFFER_SIZE ) ; byte * b = Buffer_Data ( buffer ) ; if ( -- rl->EndPosition < 0 ) rl->EndPosition = 0 ; if ( rl->i32_CursorPosition > rl->EndPosition )// shouldn't ever be greater but this will be more robust { if ( -- rl->i32_CursorPosition < 0 ) _ReadLine_CursorToStart ( rl ) ; } rl->InputLine [ rl->i32_CursorPosition ] = 0 ; // prevent string overwriting itself while coping ... strcpy ( ( char* ) b, ( char* ) & rl->InputLine [ rl->i32_CursorPosition + 1 ] ) ; if ( rl->i32_CursorPosition < rl->EndPosition ) strcat ( ( char* ) rl->InputLine, ( char* ) b ) ; ReadLine_ClearAndShowPadWithCursor ( rl ) ; Buffer_SetAsUnused ( buffer ) ; }
static void mixin_releasebuffer(PyObject *self, Py_buffer *view_p) { PyObject *py_view = Buffer_New(view_p, 1, 1); PyObject *py_rval = 0; if (py_view) { py_rval = PyObject_CallMethod(self, "_release_buffer", "(O)", py_view); if (py_rval) { Py_DECREF(py_rval); } else { PyErr_Clear(); } Buffer_Reset((BufferObject *)py_view); Py_DECREF(py_view); } else { PyErr_Clear(); } }
void _CfrTil_PrintNReturnStack ( int32 size ) { // Intel SoftwareDevelopersManual-253665.pdf section 6.2 : a push decrements ESP, a pop increments ESP // therefore TOS is in lower mem addresses, bottom of stack is in higher memory addresses Buffer * b = Buffer_New ( BUFFER_SIZE ) ; int32 * esp, i, saveSize = size ; byte * buffer = Buffer_Data ( b ) ; _CfrTil_WordName_Run ( ( byte* ) "getESP" ) ; esp = ( int32 * ) _DataStack_Pop ( ) ; if ( esp ) { Printf ( ( byte* ) "\nReturnStack :%3i : Esp (ESP) = " UINT_FRMT_0x08 " : Top = " UINT_FRMT_0x08 "", size, ( uint ) esp, ( uint ) esp ) ; // print return stack in reverse of usual order first for ( i = 0 ; size -- > 0 ; i ++ ) { Word * word = Word_GetFromCodeAddress ( ( byte* ) ( esp [ size ] ) ) ; if ( word ) sprintf ( ( char* ) buffer, "< %s.%s >", word->ContainingNamespace->Name, word->Name ) ; Printf ( ( byte* ) "\n\t\t ReturnStack [ %3d ] < " UINT_FRMT_0x08 " > = " UINT_FRMT_0x08 "\t\t%s", size, ( uint ) & esp [ size ], esp [ size ], word ? ( char* ) buffer : "" ) ; } _Stack_PrintValues ( "ReturnStack", esp, saveSize ) ; } Buffer_SetAsUnused ( b ) ; }