mirror of
https://gitlab.com/eql/EQL5.git
synced 2026-03-15 03:01:18 -07:00
fixes for MSVC 64bit compilers
This commit is contained in:
parent
0e4c00499a
commit
489084cd17
3 changed files with 13 additions and 7 deletions
|
|
@ -621,7 +621,7 @@ static cl_object new_qt_object(void* pointer, uint unique, int id, bool finalize
|
|||
STATIC_SYMBOL_PKG (s_new_qt_object, "NEW-QT-OBJECT", "EQL")
|
||||
cl_object l_qt_object = cl_funcall(5,
|
||||
s_new_qt_object,
|
||||
ecl_make_unsigned_integer((ulong)pointer),
|
||||
ecl_make_unsigned_integer((void_star_int)pointer),
|
||||
ecl_make_unsigned_integer(unique),
|
||||
MAKE_FIXNUM(id),
|
||||
finalize ? Ct : Cnil);
|
||||
|
|
@ -1122,7 +1122,7 @@ static MetaArg toMetaArg(const QByteArray& sType, cl_object l_arg) {
|
|||
else if(sType.endsWith('*')) {
|
||||
if(sType.startsWith('Q') || sType.startsWith("const Q")) {
|
||||
QtObject o = toQtObject(l_arg);
|
||||
ulong l = (ulong)o.pointer;
|
||||
void_star_int l = (void_star_int)o.pointer;
|
||||
// cast from QObject to non QObject + multiple inheritance problem
|
||||
// e.g. QGraphicsObject, which inherits both QObject and QGraphicsItem
|
||||
int q = sType.indexOf('Q');
|
||||
|
|
@ -1286,7 +1286,7 @@ cl_object to_lisp_arg(const MetaArg& arg) {
|
|||
else if("const char*" == sType) {
|
||||
l_ret = STRING_COPY(*(char**)p); }
|
||||
else {
|
||||
l_ret = ecl_make_unsigned_integer((ulong)*(void**)p); }}
|
||||
l_ret = ecl_make_unsigned_integer((void_star_int)*(void**)p); }}
|
||||
else if(T_QFileInfo == n) l_ret = from_qfileinfo(*(QFileInfo*)p);
|
||||
else if(T_QFileInfoList == n) l_ret = from_qfileinfolist(*(QFileInfoList*)p);
|
||||
else if(T_QGradientStop == n) l_ret = from_qgradientstop(*(QGradientStop*)p);
|
||||
|
|
@ -1892,7 +1892,7 @@ cl_object qinvoke_method2(cl_object l_obj, cl_object l_cast, cl_object l_name, c
|
|||
int i = -1;
|
||||
void* _this = 0;
|
||||
if(this_arg) {
|
||||
ulong l = (ulong)obj.pointer;
|
||||
void_star_int l = (void_star_int)obj.pointer;
|
||||
if(qobject_align) {
|
||||
// cast from QObject to non QObject + multiple inheritance problem
|
||||
l += sizeof(QObject); }
|
||||
|
|
|
|||
|
|
@ -219,6 +219,12 @@ typedef QListIterator<MetaArg> MetaArgIterator;
|
|||
typedef QList<QByteArray> StrList;
|
||||
typedef QList<int> IntList;
|
||||
|
||||
#ifdef Q_PROCESSOR_X86_64
|
||||
typedef qulonglong void_star_int;
|
||||
#else
|
||||
typedef qulong void_star_int;
|
||||
#endif
|
||||
|
||||
class QByteArray;
|
||||
class QObject;
|
||||
class QEvent;
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ const char EQL::version[] = "16.11.1"; // Nov 2016
|
|||
|
||||
extern "C" void ini_EQL(cl_object);
|
||||
|
||||
static char* argv[] = {"EQL5"};
|
||||
static const char* _argv_[] = {"EQL5"};
|
||||
|
||||
EQL::EQL() : QObject() {
|
||||
if(!cl_booted) {
|
||||
cl_boot(1, argv); }
|
||||
cl_boot(1, (char**)_argv_); }
|
||||
iniCLFunctions();
|
||||
LObjects::ini(this);
|
||||
read_VV(OBJNULL, ini_EQL); } // see "src/make-eql-lib.lisp"
|
||||
|
|
@ -146,7 +146,7 @@ void EQL::exec(QWidget* widget, const QString& lispFile, const QString& slimeHoo
|
|||
eval("(in-package :eql)");
|
||||
forms << QString("(set-home \"%1\")").arg(home())
|
||||
<< QString("(defvar *qt-main* (qt-object %1 0 (qid \"%2\")))")
|
||||
.arg((ulong)widget)
|
||||
.arg((void_star_int)widget)
|
||||
.arg(QString(LObjects::vanillaQtSuperClassName(widget->metaObject())))
|
||||
<< QString("(export '*qt-main*)")
|
||||
<< QString("(in-package :eql-user)")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue