int rangeCheck (Tree_node * tree, int low, int high) { if (tree==NULL) { return 1; } else if (tree->data < low || tree->data >= high) { return 0; } else { return (rangeCheck (tree->left, low, tree->data) && rangeCheck (tree->right, tree->data, high)); } }
void PreviewLabel::mousePressEvent(QMouseEvent * event) { if (!m_borderImage) return QLabel::mouseMoveEvent(event); bool bottom = false; if (event->button() == Qt::LeftButton) { if (QApplication::overrideCursor()) QApplication::restoreOverrideCursor(); if (rangeCheck(m_left * m_zoom, event->pos().x())) { QApplication::setOverrideCursor(QCursor(Qt::SizeHorCursor)); m_dragging_left = true; event->accept(); m_hooverInfo->setText("Left " + QString::number(m_left)); m_hooverInfo->show(); } else if (rangeCheck(m_top * m_zoom, event->pos().y())) { QApplication::setOverrideCursor(QCursor(Qt::SizeVerCursor)); m_dragging_top = true; event->accept(); m_hooverInfo->setText("Top " + QString::number(m_top)); m_hooverInfo->show(); } else if (rangeCheck(m_right * m_zoom, width() - event->pos().x())) { QApplication::setOverrideCursor(QCursor(Qt::SizeHorCursor)); m_dragging_right = true; event->accept(); m_hooverInfo->setText("Right " + QString::number(m_right)); m_hooverInfo->show(); } else if (rangeCheck(m_bottom * m_zoom, height() - event->pos().y())) { QApplication::setOverrideCursor(QCursor(Qt::SizeVerCursor)); m_dragging_bottom = true; event->accept(); m_hooverInfo->setText("Bottom " + QString::number(m_bottom)); m_hooverInfo->show(); bottom = true; } else { QLabel::mousePressEvent(event); } m_startPos = event->pos(); if (bottom) m_hooverInfo->move(mapToParent(m_startPos) + QPoint(0, -10)); else m_hooverInfo->move(mapToParent(m_startPos) + QPoint(0, 40)); m_hooverInfo->resize(m_hooverInfo->sizeHint()); m_hooverInfo->raise(); } }
int BSTcheckB (Tree_node * tree){ if (rangeCheck (tree, -2147483647, 2147483647)) { printf ("Valid tree detected recursively\n"); return 1; } else { printf ("Invalid tree detected recursively\n"); return -1; } }
void Stubs::do_si32(MethodFrame* f, int32_t value, int32_t addr) { avmplus::mop_si32(rangeCheck(f, addr, 4), value); }
int32_t Stubs::do_li32(MethodFrame* f, int32_t addr) { return avmplus::mop_li32(rangeCheck(f, addr, 4)); }
int32_t Stubs::do_li16(MethodFrame* f, int32_t addr) { return avmplus::mop_liz16(rangeCheck(f, addr, 2)); }
void Stubs::do_si32(MethodFrame* f, int32_t value, int32_t addr) { *((int32_t*)rangeCheck(f, addr, 4)) = value; }
//=========================================== // Quad::setVertex //=========================================== inline void Quad::setVertex(int idx, const Vec2f& vert) { rangeCheck(idx); Polygon::setVertex(idx, vert); }
double Stubs::do_lf64(MethodFrame* f, int32_t addr) { return avmplus::mop_lf64(rangeCheck(f, addr, 8)); }
void Stubs::do_sf32(MethodFrame* f, double value, int32_t addr) { *((float*) rangeCheck(f, addr, 4)) = float(value); }
int32_t Stubs::do_li8(MethodFrame* f, int32_t addr) { return (int32_t) *((uint8_t*) rangeCheck(f, addr, 1)); }
void PreviewLabel::mouseMoveEvent(QMouseEvent * event) { if (!m_borderImage) return QLabel::mouseMoveEvent(event); QPoint p = event->pos(); bool bottom = false; if (m_dragging_left) { m_left = p.x() / m_zoom; m_left = limitPositive(m_left); event->accept(); m_hooverInfo->setText("Left " + QString::number(m_left)); update(); } else if (m_dragging_top) { m_top = p.y() / m_zoom; m_top = limitPositive(m_top); event->accept(); m_hooverInfo->setText("Top " + QString::number(m_top)); update(); } else if (m_dragging_right) { m_right = (width() - p.x()) / m_zoom; m_right = limitPositive(m_right); event->accept(); m_hooverInfo->setText("Right " + QString::number(m_right)); update(); } else if (m_dragging_bottom) { m_bottom = (height() - p.y()) / m_zoom; m_bottom = limitPositive(m_bottom); event->accept(); m_hooverInfo->setText("Bottom " + QString::number(m_bottom)); bottom = true; update(); } else if (rangeCheck(m_left * m_zoom, p.x())) { QApplication::setOverrideCursor(QCursor(Qt::SizeHorCursor)); event->accept(); m_hooverInfo->setText("Left " + QString::number(m_left)); m_hooverInfo->show(); } else if (rangeCheck(m_top * m_zoom, p.y())) { QApplication::setOverrideCursor(QCursor(Qt::SizeVerCursor)); event->accept(); m_hooverInfo->setText("Top " + QString::number(m_top)); m_hooverInfo->show(); } else if (rangeCheck(m_right * m_zoom, width() - p.x())) { QApplication::setOverrideCursor(QCursor(Qt::SizeHorCursor)); event->accept(); m_hooverInfo->setText("Right " + QString::number(m_right)); m_hooverInfo->show(); } else if (rangeCheck(m_bottom * m_zoom, height() - p.y())) { QApplication::setOverrideCursor(QCursor(Qt::SizeVerCursor)); event->accept(); m_hooverInfo->setText("Bottom " + QString::number(m_bottom)); m_hooverInfo->show(); bottom = true; } else { if (QApplication::overrideCursor()) QApplication::restoreOverrideCursor(); QLabel::mouseMoveEvent(event); m_hooverInfo->hide(); } m_startPos = p; if (bottom) m_hooverInfo->move(mapToParent(p) + QPoint(0, -10)); else m_hooverInfo->move(mapToParent(p) + QPoint(0, 40)); m_hooverInfo->resize(m_hooverInfo->sizeHint()); m_hooverInfo->raise(); }
//=========================================== // Quad::getVertex //=========================================== inline const Vec2f& Quad::getVertex(int idx) const { rangeCheck(idx); return Polygon::getVertex(idx); }
double Stubs::do_lf32(MethodFrame* f, int32_t addr) { return (double) *((float*) rangeCheck(f, addr, 4)); }
int32_t Stubs::do_li16(MethodFrame* f, int32_t addr) { return (int32_t) *((uint16_t*) rangeCheck(f, addr, 2)); }
double Stubs::do_lf64(MethodFrame* f, int32_t addr) { return *((double*) rangeCheck(f, addr, 8)); }
int32_t Stubs::do_li32(MethodFrame* f, int32_t addr) { return *((int32_t*) rangeCheck(f, addr, 4)); }
void Stubs::do_sf64(MethodFrame* f, double value, int32_t addr) { *((double*) rangeCheck(f, addr, 8)) = value; }
void Stubs::do_si16(MethodFrame* f, int32_t value, int32_t addr) { *((uint16_t*)rangeCheck(f, addr, 2)) = uint16_t(value); }
void Stubs::do_sf64(MethodFrame* f, double value, int32_t addr) { avmplus::mop_sf64(rangeCheck(f, addr, 8), value); }
//=========================================== // Quad::setVertex //=========================================== inline void Quad::setVertex(int idx, float32_t x, float32_t y) { rangeCheck(idx); Polygon::setVertex(idx, x, y); }