Skip to content

Commit bb963a5

Browse files
johannessmalyshev
authored andcommitted
Fix bug #62146 com_dotnet cannot be built shared, tested by Anatoliy
1 parent 78ff9eb commit bb963a5

File tree

8 files changed

+36
-28
lines changed

8 files changed

+36
-28
lines changed

ext/com_dotnet/com_misc.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ void php_com_throw_exception(HRESULT code, char *message TSRMLS_DC)
4242
}
4343
}
4444

45-
PHPAPI void php_com_wrap_dispatch(zval *z, IDispatch *disp,
45+
PHP_COM_DOTNET_API void php_com_wrap_dispatch(zval *z, IDispatch *disp,
4646
int codepage TSRMLS_DC)
4747
{
4848
php_com_dotnet_object *obj;
@@ -65,7 +65,7 @@ PHPAPI void php_com_wrap_dispatch(zval *z, IDispatch *disp,
6565
z->value.obj.handlers = &php_com_object_handlers;
6666
}
6767

68-
PHPAPI void php_com_wrap_variant(zval *z, VARIANT *v,
68+
PHP_COM_DOTNET_API void php_com_wrap_variant(zval *z, VARIANT *v,
6969
int codepage TSRMLS_DC)
7070
{
7171
php_com_dotnet_object *obj;
@@ -92,7 +92,7 @@ PHPAPI void php_com_wrap_variant(zval *z, VARIANT *v,
9292

9393
/* this is a convenience function for fetching a particular
9494
* element from a (possibly multi-dimensional) safe array */
95-
PHPAPI int php_com_safearray_get_elem(VARIANT *array, VARIANT *dest, LONG dim1 TSRMLS_DC)
95+
PHP_COM_DOTNET_API int php_com_safearray_get_elem(VARIANT *array, VARIANT *dest, LONG dim1 TSRMLS_DC)
9696
{
9797
UINT dims;
9898
LONG lbound, ubound;

ext/com_dotnet/com_olechar.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include "php_com_dotnet_internal.h"
3131

3232

33-
PHPAPI OLECHAR *php_com_string_to_olestring(char *string, uint string_len, int codepage TSRMLS_DC)
33+
PHP_COM_DOTNET_API OLECHAR *php_com_string_to_olestring(char *string, uint string_len, int codepage TSRMLS_DC)
3434
{
3535
OLECHAR *olestring = NULL;
3636
DWORD flags = codepage == CP_UTF8 ? 0 : MB_PRECOMPOSED | MB_ERR_INVALID_CHARS;
@@ -65,7 +65,7 @@ PHPAPI OLECHAR *php_com_string_to_olestring(char *string, uint string_len, int c
6565
return olestring;
6666
}
6767

68-
PHPAPI char *php_com_olestring_to_string(OLECHAR *olestring, uint *string_len, int codepage TSRMLS_DC)
68+
PHP_COM_DOTNET_API char *php_com_olestring_to_string(OLECHAR *olestring, uint *string_len, int codepage TSRMLS_DC)
6969
{
7070
char *string;
7171
uint length = 0;

ext/com_dotnet/com_persist.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ static void istream_destructor(php_istream *stm TSRMLS_DC)
268268
}
269269
/* }}} */
270270

271-
PHPAPI IStream *php_com_wrapper_export_stream(php_stream *stream TSRMLS_DC)
271+
PHP_COM_DOTNET_API IStream *php_com_wrapper_export_stream(php_stream *stream TSRMLS_DC)
272272
{
273273
php_istream *stm = (php_istream*)CoTaskMemAlloc(sizeof(*stm));
274274

ext/com_dotnet/com_typeinfo.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
* b) a CLSID, major, minor e.g. "{00000200-0000-0010-8000-00AA006D2EA4},2,0"
3636
* c) a Type Library name e.g. "Microsoft OLE DB ActiveX Data Objects 1.0 Library"
3737
*/
38-
PHPAPI ITypeLib *php_com_load_typelib(char *search_string, int codepage TSRMLS_DC)
38+
PHP_COM_DOTNET_API ITypeLib *php_com_load_typelib(char *search_string, int codepage TSRMLS_DC)
3939
{
4040
ITypeLib *TL = NULL;
4141
char *strtok_buf, *major, *minor;
@@ -153,7 +153,7 @@ PHPAPI ITypeLib *php_com_load_typelib(char *search_string, int codepage TSRMLS_D
153153
}
154154

155155
/* Given a type-library, merge it into the current engine state */
156-
PHPAPI int php_com_import_typelib(ITypeLib *TL, int mode, int codepage TSRMLS_DC)
156+
PHP_COM_DOTNET_API int php_com_import_typelib(ITypeLib *TL, int mode, int codepage TSRMLS_DC)
157157
{
158158
int i, j, interfaces;
159159
TYPEKIND pTKind;
@@ -228,7 +228,7 @@ void php_com_typelibrary_dtor(void *pDest)
228228
ITypeLib_Release(*Lib);
229229
}
230230

231-
PHPAPI ITypeLib *php_com_load_typelib_via_cache(char *search_string,
231+
PHP_COM_DOTNET_API ITypeLib *php_com_load_typelib_via_cache(char *search_string,
232232
int codepage, int *cached TSRMLS_DC)
233233
{
234234
ITypeLib **TLp;

ext/com_dotnet/com_variant.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ static void safe_array_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_DC)
9898
}
9999
}
100100

101-
PHPAPI void php_com_variant_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_DC)
101+
PHP_COM_DOTNET_API void php_com_variant_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_DC)
102102
{
103103
OLECHAR *olestring;
104104
php_com_dotnet_object *obj;
@@ -166,7 +166,7 @@ PHPAPI void php_com_variant_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_D
166166
}
167167
}
168168

169-
PHPAPI int php_com_zval_from_variant(zval *z, VARIANT *v, int codepage TSRMLS_DC)
169+
PHP_COM_DOTNET_API int php_com_zval_from_variant(zval *z, VARIANT *v, int codepage TSRMLS_DC)
170170
{
171171
OLECHAR *olestring = NULL;
172172
int ret = SUCCESS;
@@ -258,7 +258,7 @@ PHPAPI int php_com_zval_from_variant(zval *z, VARIANT *v, int codepage TSRMLS_DC
258258
}
259259

260260

261-
PHPAPI int php_com_copy_variant(VARIANT *dstvar, VARIANT *srcvar TSRMLS_DC)
261+
PHP_COM_DOTNET_API int php_com_copy_variant(VARIANT *dstvar, VARIANT *srcvar TSRMLS_DC)
262262
{
263263
int ret = SUCCESS;
264264

ext/com_dotnet/com_wrapper.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ static void disp_destructor(php_dispatchex *disp TSRMLS_DC)
578578
CoTaskMemFree(disp);
579579
}
580580

581-
PHPAPI IDispatch *php_com_wrapper_export_as_sink(zval *val, GUID *sinkid,
581+
PHP_COM_DOTNET_API IDispatch *php_com_wrapper_export_as_sink(zval *val, GUID *sinkid,
582582
HashTable *id_to_name TSRMLS_DC)
583583
{
584584
php_dispatchex *disp = disp_constructor(val TSRMLS_CC);
@@ -617,7 +617,7 @@ PHPAPI IDispatch *php_com_wrapper_export_as_sink(zval *val, GUID *sinkid,
617617
return (IDispatch*)disp;
618618
}
619619

620-
PHPAPI IDispatch *php_com_wrapper_export(zval *val TSRMLS_DC)
620+
PHP_COM_DOTNET_API IDispatch *php_com_wrapper_export(zval *val TSRMLS_DC)
621621
{
622622
php_dispatchex *disp = NULL;
623623

ext/com_dotnet/php_com_dotnet.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ extern zend_module_entry com_dotnet_module_entry;
2828
#include "TSRM.h"
2929
#endif
3030

31+
#ifdef PHP_WIN32
32+
# define PHP_COM_DOTNET_API __declspec(dllexport)
33+
#elif defined(__GNUC__) && __GNUC__ >= 4
34+
# define PHP_COM_DOTNET_API __attribute__ ((visibility("default")))
35+
#else
36+
# define PHP_COM_DOTNET_API
37+
#endif
38+
3139
PHP_MINIT_FUNCTION(com_dotnet);
3240
PHP_MSHUTDOWN_FUNCTION(com_dotnet);
3341
PHP_RINIT_FUNCTION(com_dotnet);

ext/com_dotnet/php_com_dotnet_internal.h

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ zend_object_iterator *php_com_saproxy_iter_get(zend_class_entry *ce, zval *objec
8484
int php_com_saproxy_create(zval *com_object, zval *proxy_out, zval *index TSRMLS_DC);
8585

8686
/* com_olechar.c */
87-
PHPAPI char *php_com_olestring_to_string(OLECHAR *olestring,
87+
PHP_COM_DOTNET_API char *php_com_olestring_to_string(OLECHAR *olestring,
8888
uint *string_len, int codepage TSRMLS_DC);
89-
PHPAPI OLECHAR *php_com_string_to_olestring(char *string,
89+
PHP_COM_DOTNET_API OLECHAR *php_com_string_to_olestring(char *string,
9090
uint string_len, int codepage TSRMLS_DC);
9191

9292

@@ -112,8 +112,8 @@ int php_com_do_invoke_byref(php_com_dotnet_object *obj, char *name, int namelen,
112112

113113
/* com_wrapper.c */
114114
int php_com_wrapper_minit(INIT_FUNC_ARGS);
115-
PHPAPI IDispatch *php_com_wrapper_export_as_sink(zval *val, GUID *sinkid, HashTable *id_to_name TSRMLS_DC);
116-
PHPAPI IDispatch *php_com_wrapper_export(zval *val TSRMLS_DC);
115+
PHP_COM_DOTNET_API IDispatch *php_com_wrapper_export_as_sink(zval *val, GUID *sinkid, HashTable *id_to_name TSRMLS_DC);
116+
PHP_COM_DOTNET_API IDispatch *php_com_wrapper_export(zval *val TSRMLS_DC);
117117

118118
/* com_persist.c */
119119
int php_com_persist_minit(INIT_FUNC_ARGS);
@@ -147,10 +147,10 @@ PHP_FUNCTION(variant_get_type);
147147
PHP_FUNCTION(variant_set_type);
148148
PHP_FUNCTION(variant_cast);
149149

150-
PHPAPI void php_com_variant_from_zval_with_type(VARIANT *v, zval *z, VARTYPE type, int codepage TSRMLS_DC);
151-
PHPAPI void php_com_variant_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_DC);
152-
PHPAPI int php_com_zval_from_variant(zval *z, VARIANT *v, int codepage TSRMLS_DC);
153-
PHPAPI int php_com_copy_variant(VARIANT *dst, VARIANT *src TSRMLS_DC);
150+
PHP_COM_DOTNET_API void php_com_variant_from_zval_with_type(VARIANT *v, zval *z, VARTYPE type, int codepage TSRMLS_DC);
151+
PHP_COM_DOTNET_API void php_com_variant_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_DC);
152+
PHP_COM_DOTNET_API int php_com_zval_from_variant(zval *z, VARIANT *v, int codepage TSRMLS_DC);
153+
PHP_COM_DOTNET_API int php_com_copy_variant(VARIANT *dst, VARIANT *src TSRMLS_DC);
154154

155155
/* com_dotnet.c */
156156
PHP_FUNCTION(com_dotnet_create_instance);
@@ -159,17 +159,17 @@ void php_com_dotnet_mshutdown(TSRMLS_D);
159159

160160
/* com_misc.c */
161161
void php_com_throw_exception(HRESULT code, char *message TSRMLS_DC);
162-
PHPAPI void php_com_wrap_dispatch(zval *z, IDispatch *disp,
162+
PHP_COM_DOTNET_API void php_com_wrap_dispatch(zval *z, IDispatch *disp,
163163
int codepage TSRMLS_DC);
164-
PHPAPI void php_com_wrap_variant(zval *z, VARIANT *v,
164+
PHP_COM_DOTNET_API void php_com_wrap_variant(zval *z, VARIANT *v,
165165
int codepage TSRMLS_DC);
166-
PHPAPI int php_com_safearray_get_elem(VARIANT *array, VARIANT *dest, LONG dim1 TSRMLS_DC);
166+
PHP_COM_DOTNET_API int php_com_safearray_get_elem(VARIANT *array, VARIANT *dest, LONG dim1 TSRMLS_DC);
167167

168168
/* com_typeinfo.c */
169-
PHPAPI ITypeLib *php_com_load_typelib_via_cache(char *search_string,
169+
PHP_COM_DOTNET_API ITypeLib *php_com_load_typelib_via_cache(char *search_string,
170170
int codepage, int *cached TSRMLS_DC);
171-
PHPAPI ITypeLib *php_com_load_typelib(char *search_string, int codepage TSRMLS_DC);
172-
PHPAPI int php_com_import_typelib(ITypeLib *TL, int mode,
171+
PHP_COM_DOTNET_API ITypeLib *php_com_load_typelib(char *search_string, int codepage TSRMLS_DC);
172+
PHP_COM_DOTNET_API int php_com_import_typelib(ITypeLib *TL, int mode,
173173
int codepage TSRMLS_DC);
174174
void php_com_typelibrary_dtor(void *pDest);
175175
ITypeInfo *php_com_locate_typeinfo(char *typelibname, php_com_dotnet_object *obj, char *dispname, int sink TSRMLS_DC);

0 commit comments

Comments
 (0)