summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2023-03-22 16:30:31 +0800
committerꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2023-03-22 16:30:31 +0800
commitdc6d4edab4584a7153edcde86ae61fb9100e780a (patch)
tree6d35a089aae2cf878f538897ba10cfc431c387de
parentc1ac5962f0283b47780d850d5d507bcd5af1bf78 (diff)
Pointer to struct would point to nothing
cause the struct would be out of scope.
-rw-r--r--ord.cxx40
1 files changed, 21 insertions, 19 deletions
diff --git a/ord.cxx b/ord.cxx
index 6c82e69..27893bb 100644
--- a/ord.cxx
+++ b/ord.cxx
@@ -7,6 +7,9 @@ namespace QInterchange {
static Ord* ord;
static char* order_profile;
+ static char *fname, *lname, *address1, *address2, *city, *state, *zip,
+ *phone_day, *email;
+
static interchange_member* mPtr;
Ord::Ord(struct interchange_ord_order order, QObject* parent) :
@@ -89,23 +92,23 @@ namespace QInterchange {
order_profile = (char*)malloc(profile.size() + 1);
strcpy(order_profile, profile.toLatin1().constData());
- auto fname = (char*)malloc(member.fName().size() + 1);
+ fname = (char*)malloc(member.fName().size() + 1);
strcpy(fname, member.fName().toLatin1().constData());
- auto lname = (char*)malloc(member.lName().size() + 1);
+ lname = (char*)malloc(member.lName().size() + 1);
strcpy(lname, member.lName().toLatin1().constData());
- auto address1 = (char*)malloc(member.address1().size() + 1);
+ address1 = (char*)malloc(member.address1().size() + 1);
strcpy(address1, member.address1().toLatin1().constData());
- auto address2 = (char*)malloc(member.address2().size() + 1);
+ address2 = (char*)malloc(member.address2().size() + 1);
strcpy(address2, member.address1().toLatin1().constData());
- auto city = (char*)malloc(member.city().size() + 1);
+ city = (char*)malloc(member.city().size() + 1);
strcpy(city, member.city().toLatin1().constData());
- auto state = (char*)malloc(member.state().size() + 1);
+ state = (char*)malloc(member.state().size() + 1);
strcpy(state, member.state().toLatin1().constData());
- auto zip = (char*)malloc(member.zip().size() + 1);
+ zip = (char*)malloc(member.zip().size() + 1);
strcpy(zip, member.zip().toLatin1().constData());
- auto phone_day = (char*)malloc(member.phoneDay().size() + 1);
+ phone_day = (char*)malloc(member.phoneDay().size() + 1);
strcpy(phone_day, member.phoneDay().toLatin1().constData());
- auto email = (char*)malloc(member.email().size() + 1);
+ email = (char*)malloc(member.email().size() + 1);
strcpy(email, member.email().toLatin1().constData());
interchange_member m {
.fname = fname,
@@ -118,19 +121,18 @@ namespace QInterchange {
.phone_day = phone_day,
.email = email
};
- mPtr = &m;
interchange_ord_checkout(order_profile, m,
[](interchange_response* response) {
- free(mPtr->fname);
- free(mPtr->lname);
- free(mPtr->address1);
- free(mPtr->address2);
- free(mPtr->city);
- free(mPtr->state);
- free(mPtr->zip);
- free(mPtr->phone_day);
- free(mPtr->email);
+ free(fname);
+ free(lname);
+ free(address1);
+ free(address2);
+ free(city);
+ free(state);
+ free(zip);
+ free(phone_day);
+ free(email);
free(order_profile);
ord->emitTransaction(QString{response->data});
interchange_free_response(response);