From dc6d4edab4584a7153edcde86ae61fb9100e780a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Wed, 22 Mar 2023 16:30:31 +0800 Subject: Pointer to struct would point to nothing cause the struct would be out of scope. --- ord.cxx | 40 +++++++++++++++++++++------------------- 1 file 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); -- cgit v1.2.3