<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch gsoc17-migrate
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/c3ffaa63774adba176ce9cdfb4d44ffa742304fd">https://github.com/macports/macports-base/commit/c3ffaa63774adba176ce9cdfb4d44ffa742304fd</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit c3ffaa63774adba176ce9cdfb4d44ffa742304fd
</span>Author: Umesh Singla <umeshksingla@macports.org>
AuthorDate: Sun Aug 20 04:22:47 2017 +0530
<span style='display:block; white-space:pre;color:#404040;'> fix bugs in migrate fetch functions: over
</span>---
src/cregistry/snapshot.c | 82 +++++++------------------------------------
src/cregistry/snapshot.h | 10 +++---
src/registry2.0/snapshotobj.c | 5 +--
3 files changed, 19 insertions(+), 78 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/cregistry/snapshot.c b/src/cregistry/snapshot.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 96f4de9..c9d9b26 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/cregistry/snapshot.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/cregistry/snapshot.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -283,7 +283,7 @@ int snapshot_store_port_variants(reg_registry* reg, reg_entry* port_entry,
</span> return result;
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int reg_snapshot_ports_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
</span>
printf("inside cregistry get snapshot..\n");
reg_registry* reg = snapshot->reg;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -307,7 +307,6 @@ int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
</span> int result_space = 10;
int r;
<span style='display:block; white-space:pre;background:#ffe0e0;'>- int variant_space = 10;
</span> variant** variants;
sqlite_int64 snapshot_port_id;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -327,30 +326,19 @@ int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
</span> if (!current_port) {
return -1;
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- current_port->name = port_name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ current_port->name = strdup(port_name);
</span> current_port->requested = requested;
<span style='display:block; white-space:pre;background:#ffe0e0;'>- current_port->state = state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ current_port->state = strdup(state);
</span> current_port->variants = NULL;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // get variants for the current port using its id
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("\ncurrently on:: %s\n", port_name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- //variant* variants;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variants = (variant**) malloc(variant_space * sizeof(variant*));
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ variants = (variant**) malloc(sizeof(variant*));
</span> if (!variants) {
return -1;
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int variant_count = reg_snapshot_port_variants_get(reg, snapshot_port_id, &variants, errPtr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int variant_count = reg_snapshot_ports_get_helper(reg, snapshot_port_id, &variants, errPtr);
</span> if (variant_count > 0) {
current_port->variants = variants;
<span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("v n a m e: %s\n", variants[0]->variant_name);
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- // result[result_count++] = current_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> if (!reg_listcat((void***)&result, &result_count, &result_space, current_port)) {
r = SQLITE_ERROR;
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -374,13 +362,7 @@ int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
</span> sqlite3_finalize(stmt);
if (r == SQLITE_DONE) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("... reached here ...\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> *ports = result;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- //printf("size of ' %s ' \n", (const char*) result[0]->name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("size of ' %d' \n", (*(*ports + 0))->requested);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> return result_count;
} else {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -399,9 +381,8 @@ int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr) {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-int reg_snapshot_port_variants_get(reg_registry* reg, sqlite_int64 snapshot_port_id, variant*** variants, reg_error* errPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int reg_snapshot_ports_get_helper(reg_registry* reg, sqlite_int64 snapshot_port_id, variant*** variants, reg_error* errPtr) {
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("inside getting variants\n");
</span> sqlite3_stmt* stmt = NULL;
char* query = "SELECT * FROM registry.snapshot_port_variants WHERE snapshot_ports_id=?";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -426,25 +407,19 @@ int reg_snapshot_port_variants_get(reg_registry* reg, sqlite_int64 snapshot_port
</span> switch (r) {
case SQLITE_ROW:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("getting the variant\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant_name = (const char*)sqlite3_column_text(stmt, 2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant_sign = (const char*)sqlite3_column_text(stmt, 3);
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant_name = (const char*) sqlite3_column_text(stmt, 2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("vname: %s\n", variant_name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variant_sign = (const char*) sqlite3_column_text(stmt, 3);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("vsign: %s\n", variant_sign);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> variant* element = (variant*)malloc(sizeof(variant));
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> if (!element) {
return -1;
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- element->variant_name = variant_name;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- element->variant_sign = variant_sign;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ element->variant_name = strdup(variant_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ element->variant_sign = strdup(variant_sign);
</span> if (!reg_listcat((void***)&result, &result_count, &result_space, element)) {
r = SQLITE_ERROR;
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ //free(element);
</span> break;
case SQLITE_DONE:
case SQLITE_BUSY:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -456,15 +431,7 @@ int reg_snapshot_port_variants_get(reg_registry* reg, sqlite_int64 snapshot_port
</span> } while (r == SQLITE_ROW || r == SQLITE_BUSY);
if (r == SQLITE_DONE) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("eveyrhitn done 1\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("varint rc: %d\n", result_count);
</span> *variants = result;
<span style='display:block; white-space:pre;background:#ffe0e0;'>- // if (result_count > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // variant v = *(variants + result_count - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // printf("s v: %zu\n", sizeof(v));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // printf("v n-a m e: %s\n", v.variant_name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- printf("eveyrhitn done 2\n");
</span> return result_count;
} else {
int i;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -521,7 +488,7 @@ int reg_snapshot_propget(reg_snapshot* snapshot, char* key, char** value,
</span> break;
case SQLITE_DONE:
errPtr->code = REG_INVALID;
<span style='display:block; white-space:pre;background:#ffe0e0;'>- errPtr->description = "an invalid snapshot was passed";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ errPtr->description = "An invalid snapshot was passed";
</span> errPtr->free = NULL;
break;
case SQLITE_BUSY:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -540,28 +507,3 @@ int reg_snapshot_propget(reg_snapshot* snapshot, char* key, char** value,
</span> sqlite3_free(query);
return result;
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Gets all the 'ports' of a snapshot. The property named must be one
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * that exists in the table and must not be one with internal meaning
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * such as `id` or `state`.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * A 'port' here is a row in registry.snapshot_ports table and its
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * corresponding variants in registry.snapshot_port_variants table
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * @param [in] snapshot snapshot to get property from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * @param [in] key property to get
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * @param [out] value the value of the property
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * @param [out] errPtr on error, a description of the error that occurred
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * @return true if success; false if failure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// int reg_snapshot_ports_get(reg_snapshot* snapshot, port** ports,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// reg_error* errPtr) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// reg_registry* reg = snapshot->reg;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// int result = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// sqlite3_stmt* stmt = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// char* query;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// const char *text;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// // TODO: get ports and their variants using snapshot->id as Fk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// return result;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-// }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/cregistry/snapshot.h b/src/cregistry/snapshot.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 48b5d9c..16cbe20 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/cregistry/snapshot.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/cregistry/snapshot.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -57,15 +57,12 @@ typedef struct {
</span> char* proc; /* name of Tcl proc, if using Tcl */
} reg_snapshot;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> int get_parsed_variants(char* variants_str, variant* all_variants,
char* delim, int* variant_count);
reg_snapshot* reg_snapshot_create(reg_registry* reg, char* note,
reg_error* errPtr);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-int reg_snapshot_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-int reg_snapshot_port_variants_get(reg_registry* reg,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sqlite_int64 snapshot_port_id, variant*** variants, reg_error* errPtr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> int snapshot_store_ports(reg_registry* reg, reg_snapshot* snapshot,
reg_error* errPtr);
int snapshot_store_port_variants(reg_registry* reg, reg_entry* port_entry,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -73,7 +70,8 @@ int snapshot_store_port_variants(reg_registry* reg, reg_entry* port_entry,
</span>
int reg_snapshot_propget(reg_snapshot* snapshot, char* key, char** value,
reg_error* errPtr);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-int reg_snapshot_ports_get(reg_snapshot* snapshot, port** ports,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reg_error* errPtr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int reg_snapshot_ports_get(reg_snapshot* snapshot, port*** ports, reg_error* errPtr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int reg_snapshot_ports_get_helper(reg_registry* reg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sqlite_int64 snapshot_port_id, variant*** variants, reg_error* errPtr);
</span>
#endif /* _CSNAPSHOT_H */
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/registry2.0/snapshotobj.c b/src/registry2.0/snapshotobj.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 24f6d00..371704b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/registry2.0/snapshotobj.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/registry2.0/snapshotobj.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -94,7 +94,7 @@ static int snapshot_obj_ports(Tcl_Interp* interp, reg_snapshot* snapshot, int ob
</span> == TCL_OK) {
port** ports;
reg_error error;
<span style='display:block; white-space:pre;background:#ffe0e0;'>- int port_count = reg_snapshot_get(snapshot, &ports, &error);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int port_count = reg_snapshot_ports_get(snapshot, &ports, &error);
</span> if (port_count >= 0) {
printf("ports fetched\n");
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -104,7 +104,8 @@ static int snapshot_obj_ports(Tcl_Interp* interp, reg_snapshot* snapshot, int ob
</span> int i;
for(i=0; i < port_count; i++){
printf("in it - ");
<span style='display:block; white-space:pre;background:#ffe0e0;'>- printf(".. %d .. \n ", ports[i]->requested);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf("! %s ! ", ports[i]->name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf(".. %d .. ", ports[i]->requested);
</span> printf("! %s ! \n", ports[i]->state);
}
</pre><pre style='margin:0'>
</pre>