Skip to content

Commit 4b25c19

Browse files
committed
Runtime: Replace CURLVERSION_NOW with a function
This has the same problem as the iconv shared constant that was recently removed. Only function pointers should be stored in the exports table.
1 parent 83fa85b commit 4b25c19

4 files changed

Lines changed: 12 additions & 8 deletions

File tree

Runtime/Bindings/FFI/curl/curl.lua

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ typedef enum {
163163
164164
struct static_curl_exports_table {
165165
// Exports from curl.h
166-
CURLversion CURLVERSION_NOW;
166+
CURLversion (*curl_version_now)(void);
167167
curl_version_info_data* (*curl_version_info)(CURLversion);
168168
void (*curl_free)(void*);
169169
@@ -179,7 +179,7 @@ struct static_curl_exports_table {
179179
CURLUPart what,
180180
const char* part,
181181
unsigned int flags);
182-
const char* (*curl_url_strerror)(CURLUcode errno);
182+
const char* (*curl_url_strerror)(CURLUcode status);
183183
};
184184
185185
]]
@@ -301,7 +301,7 @@ function curl.url_strerror(errorCode)
301301
end
302302

303303
function curl.version_info(age)
304-
age = age or curl.bindings.CURLVERSION_NOW
304+
age = age or curl.bindings.curl_version_now()
305305
local versionInfo = curl.bindings.curl_version_info(age)
306306

307307
local infoTable = {
@@ -340,9 +340,9 @@ function curl.version_info(age)
340340
end
341341

342342
function curl.version(age)
343-
age = age or curl.bindings.CURLVERSION_NOW
343+
age = age or curl.bindings.curl_version_now()
344344
local infoTable = curl.version_info(age)
345-
return infoTable.version, infoTable.version_num, tonumber(curl.bindings.CURLVERSION_NOW)
345+
return infoTable.version, infoTable.version_num, tonumber(curl.bindings.curl_version_now())
346346
end
347347

348348
return curl

Runtime/Bindings/FFI/curl/curl_exports.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
struct static_curl_exports_table {
22
// Exports from curl.h
3-
CURLversion CURLVERSION_NOW;
3+
CURLversion (*curl_version_now)(void);
44
curl_version_info_data* (*curl_version_info)(CURLversion);
55
void (*curl_free)(void*);
66

Runtime/Bindings/FFI/curl/curl_ffi.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
#include "curl_ffi.hpp"
22

33
namespace curl_ffi {
4+
CURLversion curl_version_now() {
5+
return CURLVERSION_NOW;
6+
}
7+
48
void* getExportsTable() {
59
static struct static_curl_exports_table exports = {
610
// Exports from curl.h
7-
.CURLVERSION_NOW = CURLVERSION_NOW,
11+
.curl_version_now = curl_version_now,
812
.curl_version_info = curl_version_info,
913
.curl_free = curl_free,
1014

Tests/BDD/curl-library.spec.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ describe("curl", function()
336336
assertEquals(versionInfo.version, versionString)
337337
assertEquals(versionInfo.version_num, versionNumber)
338338
assertEquals(versionInfo.age, revision)
339-
assertEquals(versionInfo.age, tonumber(curl.bindings.CURLVERSION_NOW))
339+
assertEquals(versionInfo.age, tonumber(curl.bindings.curl_version_now()))
340340

341341
assertTrue(type(versionNumber) == "number")
342342
local firstMatchedCharacterIndex, lastMatchedCharacterIndex = string.find(versionString, "%d+.%d+.%d+")

0 commit comments

Comments
 (0)