Skip to content

Commit 8d30d5f

Browse files
committed
Add stubs for COMPersistHelper
1 parent 1fdc53b commit 8d30d5f

File tree

3 files changed

+82
-19
lines changed

3 files changed

+82
-19
lines changed

ext/com_dotnet/com_persist.c

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#include "php_com_dotnet.h"
3030
#include "php_com_dotnet_internal.h"
3131
#include "Zend/zend_exceptions.h"
32+
#include "com_persist_arginfo.h"
3233

3334
/* {{{ expose php_stream as a COM IStream */
3435

@@ -336,6 +337,10 @@ CPH_METHOD(GetCurFileName)
336337
OLECHAR *olename = NULL;
337338
CPH_FETCH();
338339

340+
if (zend_parse_parameters_none() == FAILURE) {
341+
RETURN_THROWS();
342+
}
343+
339344
CPH_NO_OBJ();
340345

341346
res = get_persist_file(helper);
@@ -374,15 +379,15 @@ CPH_METHOD(SaveToFile)
374379
OLECHAR *olefilename = NULL;
375380
CPH_FETCH();
376381

382+
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "p!|b",
383+
&filename, &filename_len, &remember)) {
384+
RETURN_THROWS();
385+
}
386+
377387
CPH_NO_OBJ();
378388

379389
res = get_persist_file(helper);
380390
if (helper->ipf) {
381-
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "p!|b",
382-
&filename, &filename_len, &remember)) {
383-
RETURN_THROWS();
384-
}
385-
386391
if (filename) {
387392
fullpath = expand_filepath(filename, NULL);
388393
if (!fullpath) {
@@ -436,16 +441,15 @@ CPH_METHOD(LoadFromFile)
436441
OLECHAR *olefilename;
437442
CPH_FETCH();
438443

444+
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "p|l",
445+
&filename, &filename_len, &flags)) {
446+
RETURN_THROWS();
447+
}
448+
439449
CPH_NO_OBJ();
440450

441451
res = get_persist_file(helper);
442452
if (helper->ipf) {
443-
444-
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "p|l",
445-
&filename, &filename_len, &flags)) {
446-
RETURN_THROWS();
447-
}
448-
449453
if (!(fullpath = expand_filepath(filename, NULL))) {
450454
RETURN_FALSE;
451455
}
@@ -479,6 +483,10 @@ CPH_METHOD(GetMaxStreamSize)
479483
ULARGE_INTEGER size;
480484
CPH_FETCH();
481485

486+
if (zend_parse_parameters_none() == FAILURE) {
487+
RETURN_THROWS();
488+
}
489+
482490
CPH_NO_OBJ();
483491

484492
res = get_persist_stream_init(helper);
@@ -510,6 +518,10 @@ CPH_METHOD(InitNew)
510518
HRESULT res;
511519
CPH_FETCH();
512520

521+
if (zend_parse_parameters_none() == FAILURE) {
522+
RETURN_THROWS();
523+
}
524+
513525
CPH_NO_OBJ();
514526

515527
res = get_persist_stream_init(helper);
@@ -671,14 +683,14 @@ CPH_METHOD(__construct)
671683

672684

673685
static const zend_function_entry com_persist_helper_methods[] = {
674-
CPH_ME(__construct, NULL)
675-
CPH_ME(GetCurFileName, NULL)
676-
CPH_ME(SaveToFile, NULL)
677-
CPH_ME(LoadFromFile, NULL)
678-
CPH_ME(GetMaxStreamSize, NULL)
679-
CPH_ME(InitNew, NULL)
680-
CPH_ME(LoadFromStream, NULL)
681-
CPH_ME(SaveToStream, NULL)
686+
CPH_ME(__construct, arginfo_class_COMPersistHelper___construct)
687+
CPH_ME(GetCurFileName, arginfo_class_COMPersistHelper_GetCurFileName)
688+
CPH_ME(SaveToFile, arginfo_class_COMPersistHelper_SaveToFile)
689+
CPH_ME(LoadFromFile, arginfo_class_COMPersistHelper_LoadFromFile)
690+
CPH_ME(GetMaxStreamSize, arginfo_class_COMPersistHelper_GetMaxStreamSize)
691+
CPH_ME(InitNew, arginfo_class_COMPersistHelper_InitNew)
692+
CPH_ME(LoadFromStream, arginfo_class_COMPersistHelper_LoadFromStream)
693+
CPH_ME(SaveToStream, arginfo_class_COMPersistHelper_SaveToStream)
682694
PHP_FE_END
683695
};
684696

ext/com_dotnet/com_persist.stub.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
final class COMPersistHelper {
4+
public function __construct(?VARIANT $com_object);
5+
6+
public function GetCurFileName(): string|false;
7+
8+
public function SaveToFile(?string $filename, bool $remember = true): bool;
9+
10+
public function LoadFromFile(string $path, int $flags = 0): bool;
11+
12+
public function GetMaxStreamSize(): int;
13+
14+
public function InitNew(): bool;
15+
16+
/** @param resource $stream */
17+
public function LoadFromStream($stream): bool;
18+
19+
/** @param resource $stream */
20+
public function SaveToStream($stream): bool;
21+
}

ext/com_dotnet/com_persist_arginfo.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/* This is a generated file, edit the .stub.php file instead. */
2+
3+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_COMPersistHelper___construct, 0, 0, 1)
4+
ZEND_ARG_OBJ_INFO(0, com_object, VARIANT, 1)
5+
ZEND_END_ARG_INFO()
6+
7+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_COMPersistHelper_GetCurFileName, 0, 0, MAY_BE_STRING|MAY_BE_FALSE)
8+
ZEND_END_ARG_INFO()
9+
10+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_COMPersistHelper_SaveToFile, 0, 1, _IS_BOOL, 0)
11+
ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 1)
12+
ZEND_ARG_TYPE_INFO(0, remember, _IS_BOOL, 0)
13+
ZEND_END_ARG_INFO()
14+
15+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_COMPersistHelper_LoadFromFile, 0, 1, _IS_BOOL, 0)
16+
ZEND_ARG_TYPE_INFO(0, path, IS_STRING, 0)
17+
ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
18+
ZEND_END_ARG_INFO()
19+
20+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_COMPersistHelper_GetMaxStreamSize, 0, 0, IS_LONG, 0)
21+
ZEND_END_ARG_INFO()
22+
23+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_COMPersistHelper_InitNew, 0, 0, _IS_BOOL, 0)
24+
ZEND_END_ARG_INFO()
25+
26+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_COMPersistHelper_LoadFromStream, 0, 1, _IS_BOOL, 0)
27+
ZEND_ARG_INFO(0, stream)
28+
ZEND_END_ARG_INFO()
29+
30+
#define arginfo_class_COMPersistHelper_SaveToStream arginfo_class_COMPersistHelper_LoadFromStream

0 commit comments

Comments
 (0)