예제 #1
0
static oop StaticBlockClosure__whileFalse_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aBlock)
 {
  _enter(&__info22);
  oop _1= 0;
  oop _2= 0;
  _line(107);
  /* ifFalse: */
  _1= 0;
  _2= v_self;
  _line(109);
  _2=_sendv(s_value, 1, _2);
  if (_2) goto _l6;
 {
  _1= v_aBlock;
  _line(111);
  _1=_sendv(s_value, 1, _1);
  _1= v_self;
  _2= v_aBlock;
  _line(112);
  _1=_sendv(s_whileFalse_, 2, _1, _2);
 }
 _l6:;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
예제 #2
0
static oop StaticBlockClosure__whileTrue_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aBlock)
 {
  _enter(&__info20);
  oop _1= 0;
  oop _2= 0;
  _line(94);
  /* ifTrue: */
  _1= 0;
  _2= v_self;
  _line(96);
  _2=_sendv(s_value, 1, _2);
  if (!_2) goto _l3;
 {
  _1= v_aBlock;
  _line(98);
  _1=_sendv(s_value, 1, _1);
  _1= v_self;
  _2= v_aBlock;
  _line(99);
  _1=_sendv(s_whileTrue_, 2, _1, _2);
 }
 _l3:;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop ArrayedCollection__withAll_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aCollection)
 {
  _enter(&__info11);
  oop _state1= _sendv(s_new_5f_, 2, v__vector, 4);
  oop _1= 0;
  oop _2= 0;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  _line(62);
  _1= ((oop *)_state1)[1];  /* self */
  _2= v_aCollection;
  _line(64);
  _2=_sendv(s_size, 1, _2);
  _line(64);
  _1=_sendv(s_new_, 2, _1, _2);
  ((oop *)_state1)[1]= _1;  /* self */
  ((oop *)_state1)[2]= _1;  /* stateful_self */
  _1= v_aCollection;
  /* Scope('e'->ArgumentVariableNode 'i'->ArgumentVariableNode) */
  /* Scope('size'->SlotVariableNode 'self'->ArgumentVariableNode 'aCollection'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_12, 2, 0, ((oop *)_state1), 0);
  _line(65);
  _1=_sendv(s_doWithIndex_, 2, _1, _2);
  _1= ((oop *)_state1)[1];  /* self */
  _leave();
  return _1;
  _leave();
 }
static oop ArrayedCollection__collect_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock)
 {
  _enter(&__info15);
  oop _state1= _sendv(s_new_5f_, 2, v__vector, 3);
  oop _1= 0;
  oop _2= 0;
  ((oop *)_state1)[2]= v_unaryBlock;
  _line(78);
  _1= v_self;
  _line(81);
  _1=_sendv(s_species, 1, _1);
  _2= v_self;
  _line(81);
  _2=_sendv(s_size, 1, _2);
  _line(81);
  _1=_sendv(s_new_, 2, _1, _2);
  ((oop *)_state1)[1]= _1;  /* answer */
  _1= v_self;
  /* Scope('elt'->ArgumentVariableNode 'ind'->ArgumentVariableNode) */
  /* Scope('size'->SlotVariableNode 'self'->ArgumentVariableNode 'answer'->TemporaryVariableNode 'unaryBlock'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_16, 2, 0, ((oop *)_state1), 0);
  _line(82);
  _1=_sendv(s_doWithIndex_, 2, _1, _2);
  _1= ((oop *)_state1)[1];  /* answer */
  _leave();
  return _1;
  _leave();
 }
예제 #5
0
static oop StaticBlockClosure__errorArgumentCount_(oop v__closure, oop v_stateful_self, oop v_self, oop v_actual)
 {
  _enter(&__info3);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(44);
  _1= v_self;
  _2= l_4;
  _3= v_self;
  _line(46);
  _3=_sendv(s_arity, 1, _3);
  _line(46);
  _3=_sendv(s_printString, 1, _3);
  _line(46);
  _2=_sendv(s__2c, 2, _2, _3);
  _3= l_5;
  _line(46);
  _2=_sendv(s__2c, 2, _2, _3);
  _3= v_actual;
  _line(46);
  _3=_sendv(s_printString, 1, _3);
  _line(46);
  _2=_sendv(s__2c, 2, _2, _3);
  _3= l_6;
  _line(46);
  _2=_sendv(s__2c, 2, _2, _3);
  _line(46);
  _1=_sendv(s_error_, 2, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop ArrayedCollection___5fsize(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter(&__info17);
  oop _1= 0;
  _line(86);
  _1= ((struct t_ArrayedCollection *)v_stateful_self)->v_size;
  _line(88);
  _1=_sendv(s__5fintegerValue, 1, _1);
  _leave();
  return _1;
  _leave();
 }
예제 #7
0
static oop StaticBlockClosure__arity(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter(&__info2);
  oop _1= 0;
  oop _2= 0;
  _line(42);
  _1= v_SmallInteger;
  _2= ((struct t_StaticBlockClosure *)v_stateful_self)->v__arity;
  _line(42);
  _1=_sendv(s_value_5f_, 2, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop ArrayedCollection__initialize(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter(&__info3);
  oop _1= 0;
  _line(35);
  _1= v_self;
  _line(37);
  _1=_superv(v_SequenceableCollection, s_initialize, 1, _1);
  _1= l_4;
  ((struct t_ArrayedCollection *)v_stateful_self)->v_size= _1;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
예제 #9
0
QList<QPointF> StrokeManager::interpolateStroke(int radius)
{
    QList<QPointF> result;

    int time = singleshotTime.elapsed();
    static const qreal smoothness = 0.5f;
    QLineF line(m_lastPixel, m_currentPixel);
    if (line.length() == 0) {
        return result;
    }

    qreal scaleFactor = line.length();

    if (!hasTangent && scaleFactor > 0.01f)
    {
        hasTangent = true;
//        qDebug() << "scaleFactor" << scaleFactor << "current pixel " << m_currentPixel << "last pixel" << m_lastPixel;
        m_previousTangent = (m_currentPixel - m_lastPixel) * smoothness / (3.0 * scaleFactor);
//        qDebug() << "previous tangent" << m_previousTangent;
        QLineF _line(QPointF(0,0), m_previousTangent);
        // don't bother for small tangents, as they can induce single pixel wobbliness
        if (_line.length() < 2) {
            m_previousTangent = QPointF(0,0);
        }
    } else {
        QPointF c1 = m_lastPixel + m_previousTangent * scaleFactor;
        QPointF newTangent = (m_currentPixel - c1) * smoothness / (3.0 * scaleFactor);
//        qDebug() << "scalefactor1" << scaleFactor << m_previousTangent << newTangent;
        if (scaleFactor == 0) {
            newTangent = QPointF(0,0);
        } else {
        QLineF _line(QPointF(0,0), newTangent);
        if (_line.length() < 2) {
            newTangent = QPointF(0,0);
        }
        }
        QPointF c2 = m_currentPixel - newTangent * scaleFactor;
//        qDebug() << "scalefactor2" << scaleFactor << m_previousTangent << newTangent;

        result << m_lastPixel << c1 << c2 << m_currentPixel;

        m_previousTangent = newTangent;
    }

    previousTime = time;

    return result;
}
예제 #10
0
파일: lines.c 프로젝트: CivilPol/sdcboot
// draw a horizontal or vertical line directly to the display
static int _fastcall __drawline( LPTSTR pszCmdLine, int fVertical )
{
	register int nAttribute = -1;
	int nRow, nColumn, nLength, nStyle, n;

	// get the arguments & colors
	if (( pszCmdLine == NULL ) || ( *pszCmdLine == _TEXT('\0') ))
		return ( Usage( (( fVertical ) ? DRAWVLINE_USAGE : DRAWHLINE_USAGE )));

	if ( sscanf( pszCmdLine, _TEXT("%d%d%d%d%n"), &nRow, &nColumn, &nLength, &nStyle, &n ) == 5 )
		nAttribute = GetColors( pszCmdLine+n, 0 );

	// if row or column == 999, center the line
	if ( nColumn == 999 ) {
		nColumn = ( GetScrCols() - (( fVertical ) ? 0 : nLength )) / 2;
		if ( nColumn < 0 )
			nColumn = 0;
	}

	if ( nRow == 999 ) {
		nRow = ( GetScrRows() - (( fVertical ) ? nLength : 0 )) / 2;
		if ( nRow < 0 )
			nRow = 0;
	}

	return ((( nAttribute == -1 ) || ( verify_row_col( nRow, nColumn )) || ( _line( nRow, nColumn, nLength, nStyle, fVertical, nAttribute, 1 ) != 0 )) ? Usage( (( fVertical ) ? DRAWVLINE_USAGE : DRAWHLINE_USAGE ) ) : 0 );
}
예제 #11
0
QList<QPointF> StrokeManager::tangentInpolOp(QList<QPointF> points)
{
    int time = mSingleshotTime.elapsed();
    static const qreal smoothness = 1.f;
    QLineF line( mLastPixel, mCurrentPixel);


    qreal scaleFactor = line.length() * 3.f;

    if ( !hasTangent && scaleFactor > 0.01f)
    {
        hasTangent = true;
        /*
        qDebug() << "scaleFactor" << scaleFactor
                 << "current pixel " << mCurrentPixel
                 << "last pixel" << mLastPixel;
         */
        m_previousTangent = (mCurrentPixel - mLastPixel) * smoothness / (3.0 * scaleFactor);
        //qDebug() << "previous tangent" << m_previousTangent;
        QLineF _line(QPointF(0,0), m_previousTangent);
        // don't bother for small tangents, as they can induce single pixel wobbliness
        if (_line.length() < 2)
        {
            m_previousTangent = QPointF(0,0);
        }
    }
    else
    {
        QPointF c1 = mLastPixel + m_previousTangent * scaleFactor;
        QPointF newTangent = (mCurrentPixel - c1) * smoothness / (3.0 * scaleFactor);
        //qDebug() << "scalefactor1=" << scaleFactor << m_previousTangent << newTangent;
        if (scaleFactor == 0)
        {
            newTangent = QPointF(0,0);
        }
        else
        {
            //QLineF _line(QPointF(0,0), newTangent);
            //if (_line.length() < 2)
            //{
            //    newTangent = QPointF(0,0);
            //}
        }
        QPointF c2 = mCurrentPixel - newTangent * scaleFactor;
        //c1 = mLastPixel;
        //c2 = mCurrentPixel;
        points << mLastPixel << c1 << c2 << mCurrentPixel;
        /*
        qDebug() << mLastPixel
                 << c1
                 << c2
                 << mCurrentPixel;
         */
        m_previousTangent = newTangent;
    }

    return points;
    previousTime = time;

}
예제 #12
0
static oop BlockClosure__function_5f_arity_5f_outer_state_nlr_5f_(oop v__closure, oop v_stateful_self, oop v_self, oop v__implementationAddress, oop v__argumentCount, oop v_outerBlock, oop v_variableArray, oop v__dynamicEnvironment)
 {
  _enter(&__info24);
  oop _1= 0;
  _line(126);
 {
# define self ((struct t_BlockClosure *)v_self)

#     ifndef STAGE1
	v_stateful_self=
#     endif
	v_self= _libid->alloc(v_self, sizeof(*self));
    
# undef self
 }
  _1= 0;
  _1= v__implementationAddress;
  ((struct t_BlockClosure *)v_stateful_self)->v__function= _1;
  _1= v__argumentCount;
  ((struct t_BlockClosure *)v_stateful_self)->v__arity= _1;
  _1= v_outerBlock;
  ((struct t_BlockClosure *)v_stateful_self)->v_outer= _1;
  _1= v_variableArray;
  ((struct t_BlockClosure *)v_stateful_self)->v_state= _1;
  _1= v__dynamicEnvironment;
  ((struct t_BlockClosure *)v_stateful_self)->v__nlr= _1;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop ArrayedCollection__new_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anInteger)
 {
  _enter(&__info1);
  oop _1= 0;
  oop _2= 0;
  _line(25);
  _1= v_self;
  _line(27);
  _1=_superv(v_SequenceableCollection, s_new, 1, _1);
  _2= v_anInteger;
  _line(27);
  _1=_sendv(s_initialize_, 2, _1, _2);
  _leave();
  return _1;
  _leave();
 }
예제 #14
0
void TaxiwayProc ::MoveMarkPosition(const Point & newPtPos){
	int recordpos=m_imarkPosAfterPtID;
	double relatePos=m_dmarkPosRelatePos;
	int nCount=m_location.getCount();	
	double minDist=m_dWidth*2.0;
	for(int i=0;i<nCount-1;i++){
		Point & p1=m_location.getPoint(i);
		Point & p2=m_location.getPoint(i+1);
		//get distance to the line (p1,p2);
		DistanceUnit _dist=abs((p2.getY()-p1.getY())*(newPtPos.getX()-p1.getX())-(newPtPos.getY()-p1.getY())*(p2.getX()-p1.getX()))/p1.getDistanceTo(p2);
		if(_dist<minDist){				
			double r;
			ARCVector3 _line(p1,p2);
			r=( ARCVector3(p1,newPtPos).dot(_line) )/_line.Magnitude2();
			if(r<1 && r>0){
				relatePos=r;
				minDist=_dist;
				recordpos=i;
			}			
		}

	}
	if(recordpos>=0){
		NULL;
	}else {
		relatePos=0;
		recordpos=0;
	}
	m_dmarkPosRelatePos=relatePos;
	m_imarkPosAfterPtID=recordpos;
}
예제 #15
0
static oop StaticBlockClosure__function_5f_arity_5f_(oop v__closure, oop v_stateful_self, oop v_self, oop v__implementationAddress, oop v__argumentCount)
 {
  _enter(&__info1);
  oop _1= 0;
  _line(30);
 {
# define self ((struct t_StaticBlockClosure *)v_self)

#     ifndef STAGE1
        v_stateful_self=
#     endif
        v_self= _libid->alloc(v_self, sizeof(*self));
    
# undef self
 }
  _1= 0;
  _1= v__argumentCount;
  ((struct t_StaticBlockClosure *)v_stateful_self)->v__arity= _1;
  _1= v__implementationAddress;
  ((struct t_StaticBlockClosure *)v_stateful_self)->v__function= _1;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
예제 #16
0
파일: FED.C 프로젝트: MegaGod/TW
/** setvideomode
*   init_cursor
*/
void setup_screen( void ) {
	extern int herc_align;

	registerfarbgidriver( EGAVGA_driver_far );
	registerfarbgidriver( Herc_driver_far );

	setgraph( );
	if ( scrmode == HERCMONO ) {
		writech = hgcwritech;
		if ( herc_align ) {
			align = 40;
		}/* else {
		 align = 0 (init already)
		 }*/
	} else {
		writech = ewritech;
		herc_align = 0;
	}

	init_graph_and_cursor( );

	clsall( );
	/*
	_rectangle( 0 + align, 0, 639 + align, 347 );
	*/
	_rectangle( 0, 0, 639, 347 );
	prakeaw( );
	dispstrhgc( "¨ØÌÒŧ¡Ã³ìÁËÒÇÔ·ÂÒÅÑÂ", 6, 0, BOLDATTR );
	/*
	_line( 0 + align, 24, 639 + align, 24 );
	*/
	_line( 0, 24, 639, 24 );
}
static oop b_12(oop v__closure, oop v__self, oop v_e, oop v_i)
 {
  _enter(&__info12);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(65);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _2= v_i;
  _3= v_e;
  _line(65);
  _1=_sendv(s_at_put_, 3, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop ArrayedCollection__initialize_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anInteger)
 {
  _enter(&__info5);
  oop _1= 0;
  oop _2= 0;
  _line(41);
  _1= v_self;
  _2= v_anInteger;
  _line(43);
  _1=_superv(v_SequenceableCollection, s_initialize_, 2, _1, _2);
  _1= v_anInteger;
  ((struct t_ArrayedCollection *)v_stateful_self)->v_size= _1;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop ArrayedCollection__new_withAll_(oop v__closure, oop v_stateful_self, oop v_self, oop v_capacity, oop v_value)
 {
  _enter(&__info2);
  oop _1= 0;
  oop _2= 0;
  _line(30);
  _1= v_self;
  _2= v_capacity;
  _line(32);
  _1=_sendv(s_new_, 2, _1, _2);
  _2= v_value;
  _line(32);
  _1=_sendv(s_atAllPut_, 2, _1, _2);
  _leave();
  return _1;
  _leave();
 }
예제 #20
0
void TaxiwayProc ::getMarkingPosition(Point & startPos, double  & rotateAngle ){
	if(m_imarkPosAfterPtID >m_location.getCount()-2) m_imarkPosAfterPtID=m_location.getCount()-2;

	Line _line( m_location.getPoint(m_imarkPosAfterPtID),m_location.getPoint(m_imarkPosAfterPtID+1));
	startPos= _line.getInlinePoint(m_dmarkPosRelatePos);
	ARCVector2 k;
	k.reset(m_location.getPoint(m_imarkPosAfterPtID),m_location.getPoint(m_imarkPosAfterPtID+1));
	rotateAngle = k.AngleFromCoorndinateX();
}
예제 #21
0
static void _box(FILE* os, const char* format, ...)
{
    _line(os);

    fprintf(os, "//\n");

    fprintf(os, "// ");

    va_list ap;
    va_start(ap, format);
    vfprintf(os, format, ap);
    va_end(ap);

    fputc('\n', os);
    fprintf(os, "//\n");

    _line(os);
}
static oop ArrayedCollection__size(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter(&__info13);
  oop _1= 0;
  _line(68);
  _1= ((struct t_ArrayedCollection *)v_stateful_self)->v_size;
  _leave();
  return _1;
  _leave();
 }
예제 #23
0
static oop StaticBlockClosure__value_value_value_value_value_(oop v__closure, oop v_stateful_self, oop v_self, oop v_a, oop v_b, oop v_c, oop v_d, oop v_e)
 {
  _enter(&__info17);
  oop _1= 0;
  oop _2= 0;
  _line(81);
 {
# define self ((struct t_StaticBlockClosure *)v_self)
 if ((long)self->v__arity == 5) return ((_imp_t)(self->v__function))(0, v_self, v_a, v_b, v_c, v_d, v_e); 
# undef self
 }
  _1= 0;
  _1= v_self;
  _2= l_18;
  _line(84);
  _1=_sendv(s_errorArgumentCount_, 2, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop b_16(oop v__closure, oop v__self, oop v_elt, oop v_ind)
 {
  _enter(&__info16);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(82);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* answer */
  _2= v_ind;
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* unaryBlock */
  _4= v_elt;
  _line(82);
  _3=_sendv(s_value_, 2, _3, _4);
  _line(82);
  _1=_sendv(s_at_put_, 3, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop ArrayedCollection__byteSize(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter(&__info14);
  oop _1= 0;
  oop _2= 0;
  _line(73);
  _1= ((struct t_ArrayedCollection *)v_stateful_self)->v_size;
  _2= v_self;
  _line(75);
  _2=_sendv(s_elementSize, 1, _2);
  {
    int _l= (long)_1 >> 1;
    int _r= (long)_2 >> 1;
    int _s= (_l * _r);
    if ((1 & (long)_1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(long)(_s << 1 | 1);  else _1= _sendv(s__2a, 2, _1, _2);
  }
  _leave();
  return _1;
  _leave();
 }
static oop ArrayedCollection__with_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject)
 {
  _enter(&__info6);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(47);
  _1= v_self;
  _2= l_7;
  _line(49);
  _1=_sendv(s_new_, 2, _1, _2);
  _2= l_7;
  _3= v_anObject;
  _line(50);
  _sendv(s_at_put_, 3, _1, _2, _3);
  _1=_sendv(s_yourself, 1, _1);
  _leave();
  return _1;
  _leave();
 }
예제 #27
0
파일: lines.c 프로젝트: ErisBlastar/osfree
// draw a horizontal or vertical line directly to the display
int drawline_cmd( int argc, char **argv )
{
	int attribute = -1;
	int row, col, len, width;

	// get the arguments & colors
	if (( argc >= 6 ) && ( sscanf( argv[1], "%d%d%d%d", &row, &col, &len, &width ) == 4 ))
		attribute = GetColors( argv[5], 0 );

	return ((( attribute == -1 ) || ( verify_row_col( row, col )) || ( _line( row, col, len, width,(_ctoupper( argv[0][4] ) == 'V' ), attribute, 1 ) != 0 )) ? usage( DRAWLINE_USAGE ) : 0 );
}
예제 #28
0
static oop StaticBlockClosure__whileTrue(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter(&__info19);
  oop _1= 0;
  _line(89);
  /* whileTrue: */
  goto _l2;
 _l1:;
 {
  _1= v_nil;
 }
 _l2:;
 {
  _1= v_self;
  _line(91);
  _1=_sendv(s_value, 1, _1);
 }
  if (_1) goto _l1;
  _1= 0;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
예제 #29
0
static oop StaticBlockClosure__whileFalse(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter(&__info21);
  oop _1= 0;
  _line(102);
  /* whileFalse: */
  goto _l5;
 _l4:;
 {
  _1= v_nil;
 }
 _l5:;
 {
  _1= v_self;
  _line(104);
  _1=_sendv(s_value, 1, _1);
 }
  if (!_1) goto _l4;
  _1= 0;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
예제 #30
0
static oop StaticBlockClosure__repeat(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter(&__info23);
  oop _1= 0;
  _line(115);
  /* whileTrue: */
  goto _l8;
 _l7:;
 {
  _1= v_self;
  _line(117);
  _1=_sendv(s_value, 1, _1);
 }
 _l8:;
 {
  _1= v_true;
 }
  if (_1) goto _l7;
  _1= 0;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }