]> granicus.if.org Git - graphviz/commitdiff
take a vector in generateYConstraints instead of a size and C pointer
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 22 May 2021 04:06:57 +0000 (21:06 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 29 May 2021 00:02:43 +0000 (17:02 -0700)
Like the previous commit, this is a step towards removing some manual memory
management.

lib/vpsc/csolve_VPSC.cpp
lib/vpsc/generate-constraints.cpp
lib/vpsc/generate-constraints.h

index 83d0fffdd12fe7d5010862c09cc03cda436b9b9a..e74d07d4564ce88118d7d536d3632f7a4f60bc16 100644 (file)
@@ -54,7 +54,7 @@ int genYConstraints(int n, boxf* bb, Variable** vs, Constraint*** cs) {
        for(int i=0;i<n;i++) {
                rs[i]=new Rectangle(bb[i].LL.x,bb[i].UR.x,bb[i].LL.y,bb[i].UR.y);
        }
-       int m = generateYConstraints(n,rs.data(),vs,*cs);
+       int m = generateYConstraints(rs,vs,*cs);
        for(int i=0;i<n;i++) {
                delete rs[i];
        }
index 5f276e78d9f1fb7bccd1e00f0775f2de95eb056c..5c83fc76c38009913936b785341963b12959f057 100644 (file)
@@ -215,10 +215,12 @@ int generateXConstraints(vector<Rectangle*> &rs, Variable** vars,
 /**
  * Prepares constraints in order to apply VPSC vertically to remove ALL overlap.
  */
-int generateYConstraints(const int n, Rectangle** rs, Variable** vars, Constraint** &cs) {
+int generateYConstraints(vector<Rectangle*> &rs, Variable** vars,
+         Constraint** &cs) {
+
        vector<Event> events;
-       events.reserve(2 * n);
-       for(int i=0;i<n;i++) {
+       events.reserve(2 * rs.size());
+       for(size_t i=0;i<rs.size();i++) {
                vars[i]->desiredPosition=rs[i]->getCentreY();
                Node *v = new Node(vars[i],rs[i],rs[i]->getCentreY());
                events.emplace_back(Open,v,rs[i]->getMinX());
index 68f15a09b9d9b41f53f46f86f3510702104a56f5..abd228e4674317ace08c7b5b0dd8a83bfeef7fc2 100644 (file)
@@ -79,4 +79,5 @@ struct Constraint;
 // returns number of constraints generated
 int generateXConstraints(std::vector<Rectangle*> &rs, Variable** vars,
        Constraint** &cs, const bool useNeighbourLists);
-int generateYConstraints(const int n, Rectangle** rs, Variable** vars, Constraint** &cs);
+int generateYConstraints(std::vector<Rectangle*> &rs, Variable** vars,
+       Constraint** &cs);