iliaa           Tue Jan 14 13:54:44 2003 EDT

  Modified files:              
    /php4/ext/cpdf      cpdf.c 
  Log:
  Switched from old getParse* argument parsing API to a more recent 
  zend_get_parameters*.
  
  
Index: php4/ext/cpdf/cpdf.c
diff -u php4/ext/cpdf/cpdf.c:1.46 php4/ext/cpdf/cpdf.c:1.47
--- php4/ext/cpdf/cpdf.c:1.46   Tue Jan 14 10:15:53 2003
+++ php4/ext/cpdf/cpdf.c        Tue Jan 14 13:54:44 2003
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: cpdf.c,v 1.46 2003/01/14 15:15:53 iliaa Exp $ */
+/* $Id: cpdf.c,v 1.47 2003/01/14 18:54:44 iliaa Exp $ */
 /* cpdflib.h -- C language API definitions for ClibPDF library
  * Copyright (C) 1998 FastIO Systems, All Rights Reserved.
 */
@@ -81,8 +81,8 @@
 #endif
 
 #define CPDF_FETCH_CPDFDOC(pdf_zval) \
-        convert_to_long(pdf_zval); \
-       id = Z_LVAL_P(pdf_zval); \
+        convert_to_long_ex(pdf_zval); \
+       id = Z_LVAL_PP(pdf_zval); \
        pdf = zend_list_find(id, &type); \
        if(!pdf || type != CPDF_GLOBAL(le_cpdf)) { \
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find identifier 
%d", id); \
@@ -237,22 +237,20 @@
    Sets document settings for all documents */
 PHP_FUNCTION(cpdf_global_set_document_limits)
 {
-       pval *argv[5];
+       zval **argv[5];
        int argc;
 
-       argc = ZEND_NUM_ARGS();
-       if(argc != 5)
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if (ZEND_NUM_ARGS() != 5 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
-       convert_to_long(argv[0]);
-       convert_to_long(argv[1]);
-       convert_to_long(argv[2]);
-       convert_to_long(argv[3]);
-       convert_to_long(argv[4]);
+       convert_to_long_ex(argv[0]);
+       convert_to_long_ex(argv[1]);
+       convert_to_long_ex(argv[2]);
+       convert_to_long_ex(argv[3]);
+       convert_to_long_ex(argv[4]);
 
-       cpdf_setGlobalDocumentLimits(Z_LVAL_P(argv[0]), Z_LVAL_P(argv[1]), 
Z_LVAL_P(argv[2]), Z_LVAL_P(argv[3]), Z_LVAL_P(argv[4]));
+       cpdf_setGlobalDocumentLimits(Z_LVAL_PP(argv[0]), Z_LVAL_PP(argv[1]), 
+Z_LVAL_PP(argv[2]), Z_LVAL_PP(argv[3]), Z_LVAL_PP(argv[4]));
 
        RETURN_TRUE;
 }
@@ -262,18 +260,18 @@
    Sets the creator field */
 PHP_FUNCTION(cpdf_set_creator)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || (zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
+       convert_to_string_ex(arg2);
 
-       cpdf_setCreator(pdf, Z_STRVAL_P(arg2));
+       cpdf_setCreator(pdf, Z_STRVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -283,18 +281,18 @@
    Fills the title field of the info structure */
 PHP_FUNCTION(cpdf_set_title)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
+       convert_to_string_ex(arg2);
 
-       cpdf_setTitle(pdf, Z_STRVAL_P(arg2));
+       cpdf_setTitle(pdf, Z_STRVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -304,19 +302,19 @@
    Fills the subject field of the info structure */
 PHP_FUNCTION(cpdf_set_subject)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
+       convert_to_string_ex(arg2);
 
-       cpdf_setSubject(pdf, Z_STRVAL_P(arg2));
+       cpdf_setSubject(pdf, Z_STRVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -326,18 +324,18 @@
    Fills the keywords field of the info structure */
 PHP_FUNCTION(cpdf_set_keywords)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
+       convert_to_string_ex(arg2);
 
-       cpdf_setKeywords(pdf, Z_STRVAL_P(arg2));
+       cpdf_setKeywords(pdf, Z_STRVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -347,60 +345,50 @@
    How to show the document in the viewer */
 PHP_FUNCTION(cpdf_set_viewer_preferences)
 {
-       zval *arg1, *arg2;
+       zval **arg1, **arg2;
        zval **zvalue;
        int id, type;
        CPDFdoc *pdf;
        CPDFviewerPrefs vP = { 0, 0, 0, 0, 0, 0, 0, 0 };
 
-       if(ZEND_NUM_ARGS() != 2)
-               WRONG_PARAM_COUNT;
-
-       if (getParameters(ht, 2, &arg1, &arg2) == FAILURE)
+       if(ZEND_NUM_ARGS() != 2 || (zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_array(arg2);
+       convert_to_array_ex(arg2);
 
-       if (zend_hash_find (Z_ARRVAL_P(arg2), "pagemode", sizeof ("pagemode"), (void 
**) &zvalue) == SUCCESS)
-       {
-               convert_to_long_ex (zvalue);
-               vP.pageMode = Z_LVAL_PP (zvalue);
+       if (zend_hash_find (Z_ARRVAL_PP(arg2), "pagemode", sizeof ("pagemode"), (void 
+**) &zvalue) == SUCCESS) {
+               convert_to_long_ex(zvalue);
+               vP.pageMode = Z_LVAL_PP(zvalue);
        }
-       if (zend_hash_find (Z_ARRVAL_P(arg2), "hidetoolbar", sizeof ("hidetoolbar"), 
(void **) &zvalue) == SUCCESS)
-       {
-               convert_to_long_ex (zvalue);
-               vP.hideToolbar = Z_LVAL_PP (zvalue);
+       if (zend_hash_find (Z_ARRVAL_PP(arg2), "hidetoolbar", sizeof ("hidetoolbar"), 
+(void **) &zvalue) == SUCCESS) {
+               convert_to_long_ex(zvalue);
+               vP.hideToolbar = Z_LVAL_PP(zvalue);
        }
-       if (zend_hash_find (Z_ARRVAL_P(arg2), "hidemenubar", sizeof ("hidemenubar"), 
(void **) &zvalue) == SUCCESS)
-       {
-               convert_to_long_ex (zvalue);
-               vP.hideMenubar = Z_LVAL_PP (zvalue);
+       if (zend_hash_find (Z_ARRVAL_PP(arg2), "hidemenubar", sizeof ("hidemenubar"), 
+(void **) &zvalue) == SUCCESS) {
+               convert_to_long_ex(zvalue);
+               vP.hideMenubar = Z_LVAL_PP(zvalue);
        }
-       if (zend_hash_find (Z_ARRVAL_P(arg2), "hidewindowui", sizeof ("hidewindowui"), 
(void **) &zvalue) == SUCCESS)
-       {
-               convert_to_long_ex (zvalue);
-               vP.hideWindowUI = Z_LVAL_PP (zvalue);
+       if (zend_hash_find (Z_ARRVAL_PP(arg2), "hidewindowui", sizeof 
+("hidewindowui"), (void **) &zvalue) == SUCCESS) {
+               convert_to_long_ex(zvalue);
+               vP.hideWindowUI = Z_LVAL_PP(zvalue);
        }
-       if (zend_hash_find (Z_ARRVAL_P(arg2), "fitwindow", sizeof ("fitwindow"), (void 
**) &zvalue) == SUCCESS)
-       {
-               convert_to_long_ex (zvalue);
-               vP.fitWindow = Z_LVAL_PP (zvalue);
+       if (zend_hash_find (Z_ARRVAL_PP(arg2), "fitwindow", sizeof ("fitwindow"), 
+(void **) &zvalue) == SUCCESS) {
+               convert_to_long_ex(zvalue);
+               vP.fitWindow = Z_LVAL_PP(zvalue);
        }
-       if (zend_hash_find (Z_ARRVAL_P(arg2), "centerwindow", sizeof ("centerwindow"), 
(void **) &zvalue) == SUCCESS)
-       {
-               convert_to_long_ex (zvalue);
-               vP.centerWindow = Z_LVAL_PP (zvalue);
+       if (zend_hash_find (Z_ARRVAL_PP(arg2), "centerwindow", sizeof 
+("centerwindow"), (void **) &zvalue) == SUCCESS) {
+               convert_to_long_ex(zvalue);
+               vP.centerWindow = Z_LVAL_PP(zvalue);
        }
-       if (zend_hash_find (Z_ARRVAL_P(arg2), "pagelayout", sizeof ("pagelayout"), 
(void **) &zvalue) == SUCCESS)
-       {
-               convert_to_long_ex (zvalue);
-               vP.pageLayout = Z_LVAL_PP (zvalue);
+       if (zend_hash_find (Z_ARRVAL_PP(arg2), "pagelayout", sizeof ("pagelayout"), 
+(void **) &zvalue) == SUCCESS) {
+               convert_to_long_ex(zvalue);
+               vP.pageLayout = Z_LVAL_PP(zvalue);
        }
-       if (zend_hash_find (Z_ARRVAL_P(arg2), "nonfspagemode", sizeof 
("nonfspagemode"), (void **) &zvalue) == SUCCESS)
-       {
-               convert_to_long_ex (zvalue);
-               vP.nonFSPageMode = Z_LVAL_PP (zvalue);
+       if (zend_hash_find (Z_ARRVAL_PP(arg2), "nonfspagemode", sizeof 
+("nonfspagemode"), (void **) &zvalue) == SUCCESS) {
+               convert_to_long_ex(zvalue);
+               vP.nonFSPageMode = Z_LVAL_PP(zvalue);
        }
 
        cpdf_setViewerPreferences(pdf, &vP);
@@ -413,48 +401,31 @@
    Opens a new pdf document */
 PHP_FUNCTION(cpdf_open)
 {
-       pval *arg1, *arg2, *arg3;
-       int id, argc;
+       zval **arg1, **arg2 = NULL, **arg3 = NULL;
+       int id;
        CPDFdoc *cpdf;
 
-       argc = ZEND_NUM_ARGS();
-       switch(argc) {
-               case 1:
-                       if (getParameters(ht, 1, &arg1) == FAILURE) {
-                               WRONG_PARAM_COUNT;
-                       }
-                       break;
-               case 2:
-                       if (getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
-                               WRONG_PARAM_COUNT;
-                       }
-                       break;
-               case 3:
-                       if (getParameters(ht, 3, &arg1, &arg2, &arg3) == FAILURE) {
-                               WRONG_PARAM_COUNT;
-                       }
-                       break;
-               default:
-                       WRONG_PARAM_COUNT;
+       if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 3 || 
+(zend_get_parameters_ex(ZEND_NUM_ARGS(), &arg1, &arg2, &arg3) == FAILURE)) {
+               WRONG_PARAM_COUNT;
        }
 
-       convert_to_long(arg1);
+       convert_to_long_ex(arg1);
 
        cpdf = cpdf_open(0, NULL);
        if(!cpdf)
                RETURN_FALSE;
-       if(Z_LVAL_P(arg1) == 1)
+       if(Z_LVAL_PP(arg1) == 1)
                cpdf_enableCompression(cpdf, YES);
        else
                cpdf_enableCompression(cpdf, NO);
 
-       if(argc > 1) {
-               convert_to_string(arg2);
+       if(arg2) {
+               convert_to_string_ex(arg2);
 #if APACHE
-               if(strcmp(Z_STRVAL_P(arg2), "-") == 0)
+               if(strcmp(Z_STRVAL_PP(arg2), "-") == 0)
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Writing to stdout 
as described in the ClibPDF manual is not possible if php is used as an Apache module. 
Write to a memory stream and use cpdf_output_buffer() instead.");
 #endif
-               cpdf_setOutputFilename(cpdf, Z_STRVAL_P(arg2));
+               cpdf_setOutputFilename(cpdf, Z_STRVAL_PP(arg2));
        }
        cpdf_init(cpdf);
 
@@ -467,11 +438,11 @@
    Closes the pdf document */
 PHP_FUNCTION(cpdf_close)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -488,32 +459,31 @@
    Starts page */
 PHP_FUNCTION(cpdf_page_init)
 {
-       pval *argv[6];
+       zval **argv[6];
        int id, type, pagenr, orientation;
-       int height, width, argc;
+       int height, width;
        char buffer[BUFFERLEN];
        CPDFdoc *pdf;
+       int argc = ZEND_NUM_ARGS();
 
-       argc = ZEND_NUM_ARGS();
-       if(argc < 5 || argc > 6)
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 5 || argc > 6 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_long(argv[1]);
-       convert_to_long(argv[2]);
-       convert_to_long(argv[3]);
-       convert_to_long(argv[4]);
-       pagenr=Z_LVAL_P(argv[1]);
-       orientation=Z_LVAL_P(argv[2]);
-       height = Z_LVAL_P(argv[3]);
-       width = Z_LVAL_P(argv[4]);
+       convert_to_long_ex(argv[1]);
+       convert_to_long_ex(argv[2]);
+       convert_to_long_ex(argv[3]);
+       convert_to_long_ex(argv[4]);
+       pagenr=Z_LVAL_PP(argv[1]);
+       orientation=Z_LVAL_PP(argv[2]);
+       height = Z_LVAL_PP(argv[3]);
+       width = Z_LVAL_PP(argv[4]);
 
        if(argc > 5) {
-               convert_to_double(argv[5]);
-               if(Z_DVAL_P(argv[5]) > 0.0)
-                       cpdf_setDefaultDomainUnit(pdf, Z_DVAL_P(argv[5]));
+               convert_to_double_ex(argv[5]);
+               if(Z_DVAL_PP(argv[5]) > 0.0)
+                       cpdf_setDefaultDomainUnit(pdf, Z_DVAL_PP(argv[5]));
        }
        snprintf(buffer, BUFFERLEN, "0 0 %d %d", width, height);
        cpdf_pageInit(pdf, pagenr, orientation, buffer, buffer);
@@ -527,17 +497,17 @@
    Ends the page to save memory */
 PHP_FUNCTION(cpdf_finalize_page)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type, pagenr;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_long(arg2);
-       pagenr=Z_LVAL_P(arg2);
+       convert_to_long_ex(arg2);
+       pagenr=Z_LVAL_PP(arg2);
        
        cpdf_finalizePage(pdf, pagenr);
 
@@ -549,17 +519,17 @@
    Sets page for output */
 PHP_FUNCTION(cpdf_set_current_page)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type, pagenr;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_long(arg2);
-       pagenr=Z_LVAL_P(arg2);
+       convert_to_long_ex(arg2);
+       pagenr=Z_LVAL_PP(arg2);
 
        cpdf_setCurrentPage(pdf, pagenr);
 
@@ -571,11 +541,11 @@
    Starts text section */
 PHP_FUNCTION(cpdf_begin_text)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -591,11 +561,11 @@
    Ends text section */
 PHP_FUNCTION(cpdf_end_text)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -611,18 +581,18 @@
    Output text at current position */
 PHP_FUNCTION(cpdf_show)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
+       convert_to_string_ex(arg2);
 
-       cpdf_textShow(pdf, Z_STRVAL_P(arg2));
+       cpdf_textShow(pdf, Z_STRVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -632,29 +602,28 @@
    Output text at position */
 PHP_FUNCTION(cpdf_show_xy)
 {
-       pval *argv[5];
-       int id, type, argc, mode=0;
+       zval **argv[5];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
        argc = ZEND_NUM_ARGS();
-       if((argc < 4) || (argc > 5))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 4 || argc > 5 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_string(argv[1]);
-       convert_to_double(argv[2]);
-       convert_to_double(argv[3]);
+       convert_to_string_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
+       convert_to_double_ex(argv[3]);
 
        if(argc == 5) {
-               convert_to_long(argv[4]);
-               mode = Z_LVAL_P(argv[4]);
+               convert_to_long_ex(argv[4]);
+               mode = Z_LVAL_PP(argv[4]);
        }
        if(mode == 1)
-               cpdf_rawText(pdf, (float) Z_DVAL_P(argv[2]), (float) 
Z_DVAL_P(argv[3]), 0.0, Z_STRVAL_P(argv[1]));
+               cpdf_rawText(pdf, (float) Z_DVAL_PP(argv[2]), (float) 
+Z_DVAL_PP(argv[3]), 0.0, Z_STRVAL_PP(argv[1]));
        else
-               cpdf_text(pdf, (float) Z_DVAL_P(argv[2]), (float) Z_DVAL_P(argv[3]), 
0.0, Z_STRVAL_P(argv[1]));
+               cpdf_text(pdf, (float) Z_DVAL_PP(argv[2]), (float) Z_DVAL_PP(argv[3]), 
+0.0, Z_STRVAL_PP(argv[1]));
 
        RETURN_TRUE;
 }
@@ -664,18 +633,18 @@
    Outputs text in next line */
 PHP_FUNCTION(cpdf_continue_text)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
+       convert_to_string_ex(arg2);
 
-       cpdf_textCRLFshow(pdf, Z_STRVAL_P(arg2));
+       cpdf_textCRLFshow(pdf, Z_STRVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -685,79 +654,56 @@
    Outputs text */
 PHP_FUNCTION(cpdf_text)
 {
-       pval *argv[7];
-       int id, type, argc, mode=0;
+       zval **argv[7];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 2) || (argc == 3) || (argc > 7) || getParametersArray(ht, argc, 
argv) == FAILURE)
-                       WRONG_PARAM_COUNT;
+       if(argc < 2 || argc == 3 || argc > 7 || (zend_get_parameters_array_ex(argc, 
+argv) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_string(argv[1]);
+       convert_to_string_ex(argv[1]);
 
        if(argc > 4) {
-               convert_to_long(argv[4]);
-               mode = Z_LVAL_P(argv[2]);
+               convert_to_long_ex(argv[4]);
+               mode = Z_LVAL_PP(argv[2]);
        }
        switch(argc) {
                case 2:
-                       cpdf_textShow(pdf, Z_STRVAL_P(argv[1]));
+                       cpdf_textShow(pdf, Z_STRVAL_PP(argv[1]));
                        break;
                case 4:
-                       convert_to_double(argv[2]);
-                       convert_to_double(argv[3]);
-                       cpdf_text(pdf, (float) Z_DVAL_P(argv[2]),
-                                 (float) Z_DVAL_P(argv[3]),
-                                  0.0,
-                                  Z_STRVAL_P(argv[1]));
+                       convert_to_double_ex(argv[2]);
+                       convert_to_double_ex(argv[3]);
+                       cpdf_text(pdf, (float) Z_DVAL_PP(argv[2]), (float) 
+Z_DVAL_PP(argv[3]), 0.0, Z_STRVAL_PP(argv[1]));
                        break;
                case 5:
-                       convert_to_double(argv[2]);
-                       convert_to_double(argv[3]);
+                       convert_to_double_ex(argv[2]);
+                       convert_to_double_ex(argv[3]);
                        if(mode == 1)
-                               cpdf_rawText(pdf, (float) Z_DVAL_P(argv[2]),
-                                       (float) Z_DVAL_P(argv[3]),
-                                       0.0,
-                                       Z_STRVAL_P(argv[1]));
+                               cpdf_rawText(pdf, (float) Z_DVAL_PP(argv[2]), (float) 
+Z_DVAL_PP(argv[3]), 0.0, Z_STRVAL_PP(argv[1]));
                        else
-                               cpdf_text(pdf, (float) Z_DVAL_P(argv[2]),
-                                         (float) Z_DVAL_P(argv[3]),
-                                         0.0,
-                                         Z_STRVAL_P(argv[1]));
+                               cpdf_text(pdf, (float) Z_DVAL_PP(argv[2]), (float) 
+Z_DVAL_PP(argv[3]), 0.0, Z_STRVAL_PP(argv[1]));
                        break;
                case 6:
-                       convert_to_double(argv[2]);
-                       convert_to_double(argv[3]);
-                       convert_to_double(argv[5]);
+                       convert_to_double_ex(argv[2]);
+                       convert_to_double_ex(argv[3]);
+                       convert_to_double_ex(argv[5]);
                        if(mode == 1)
-                               cpdf_rawText(pdf, (float) Z_DVAL_P(argv[2]),
-                                       (float) Z_DVAL_P(argv[3]),
-                                       (float) Z_DVAL_P(argv[5]),
-                                       Z_STRVAL_P(argv[1]));
+                               cpdf_rawText(pdf, (float) Z_DVAL_PP(argv[2]), (float) 
+Z_DVAL_PP(argv[3]), (float) Z_DVAL_PP(argv[5]), Z_STRVAL_PP(argv[1]));
                        else
-                               cpdf_text(pdf, (float) Z_DVAL_P(argv[2]),
-                                       (float) Z_DVAL_P(argv[3]),
-                                       (float) Z_DVAL_P(argv[5]),
-                                       Z_STRVAL_P(argv[1]));
+                               cpdf_text(pdf, (float) Z_DVAL_PP(argv[2]), (float) 
+Z_DVAL_PP(argv[3]), (float) Z_DVAL_PP(argv[5]), Z_STRVAL_PP(argv[1]));
                        break;
                case 7:
-                       convert_to_double(argv[2]);
-                       convert_to_double(argv[3]);
-                       convert_to_double(argv[5]);
-                       convert_to_long(argv[6]);
+                       convert_to_double_ex(argv[2]);
+                       convert_to_double_ex(argv[3]);
+                       convert_to_double_ex(argv[5]);
+                       convert_to_long_ex(argv[6]);
                        if(mode == 1)
-                               cpdf_rawTextAligned(pdf, (float) Z_DVAL_P(argv[2]),
-                                       (float) Z_DVAL_P(argv[3]),
-                                       (float) Z_DVAL_P(argv[5]),
-                                       Z_LVAL_P(argv[6]),
-                                       Z_STRVAL_P(argv[1]));
+                               cpdf_rawTextAligned(pdf, (float) Z_DVAL_PP(argv[2]), 
+(float) Z_DVAL_PP(argv[3]), (float) Z_DVAL_PP(argv[5]), Z_LVAL_PP(argv[6]), 
+Z_STRVAL_PP(argv[1]));
                        else
-                               cpdf_textAligned(pdf, (float) Z_DVAL_P(argv[2]),
-                                       (float) Z_DVAL_P(argv[3]),
-                                       (float) Z_DVAL_P(argv[5]),
-                                       Z_LVAL_P(argv[6]),
-                                       Z_STRVAL_P(argv[1]));
+                               cpdf_textAligned(pdf, (float) Z_DVAL_PP(argv[2]), 
+(float) Z_DVAL_PP(argv[3]), (float) Z_DVAL_PP(argv[5]), Z_LVAL_PP(argv[6]), 
+Z_STRVAL_PP(argv[1]));
                        break;
        }
 
@@ -769,25 +715,25 @@
    Selects the current font face, size and encoding */
 PHP_FUNCTION(cpdf_set_font)
 {
-       pval *arg1, *arg2, *arg3, *arg4;
+       zval **arg1, **arg2, **arg3, **arg4;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 4 || getParameters(ht, 4, &arg1, &arg2, &arg3, &arg4) 
== FAILURE) {
+       if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(ht, 4, &arg1, &arg2, &arg3, 
+&arg4) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
-       convert_to_double(arg3);
-       convert_to_string(arg4);
+       convert_to_string_ex(arg2);
+       convert_to_double_ex(arg3);
+       convert_to_string_ex(arg4);
        
-/*     if(Z_LVAL_P(arg4) > 6) {
+/*     if(Z_LVAL_PP(arg4) > 6) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Font encoding set to 5");
-               Z_LVAL_P(arg4) = 5;
+               Z_LVAL_PP(arg4) = 5;
        }
 */
-       cpdf_setFont(pdf, Z_STRVAL_P(arg2), Z_STRVAL_P(arg4), (float) Z_DVAL_P(arg3));
+       cpdf_setFont(pdf, Z_STRVAL_PP(arg2), Z_STRVAL_PP(arg4), (float) 
+Z_DVAL_PP(arg3));
 
        RETURN_TRUE;
 }
@@ -797,19 +743,19 @@
    Sets directories to search when using external fonts */
 PHP_FUNCTION(cpdf_set_font_directories)
 {
-       pval *arg1, *arg2, *arg3;
+       zval **arg1, **arg2, **arg3;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 3 || getParameters(ht, 3, &arg1, &arg2, &arg3) == 
FAILURE) {
+       if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
-       convert_to_string(arg3);
+       convert_to_string_ex(arg2);
+       convert_to_string_ex(arg3);
 
-       cpdf_setFontDirectories(pdf, Z_STRVAL_P(arg2), Z_STRVAL_P(arg3));
+       cpdf_setFontDirectories(pdf, Z_STRVAL_PP(arg2), Z_STRVAL_PP(arg3));
 
        RETURN_TRUE;
 }
@@ -819,18 +765,18 @@
    Sets fontname to filename translation map when using external fonts */
 PHP_FUNCTION(cpdf_set_font_map_file)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
+       convert_to_string_ex(arg2);
 
-       cpdf_setFontMapFile(pdf, Z_STRVAL_P(arg2));
+       cpdf_setFontMapFile(pdf, Z_STRVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -840,18 +786,18 @@
    Sets distance between text lines */
 PHP_FUNCTION(cpdf_set_leading)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
        
-       cpdf_setTextLeading(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_setTextLeading(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -861,18 +807,18 @@
    Determines how text is rendered */
 PHP_FUNCTION(cpdf_set_text_rendering)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_long(arg2);
+       convert_to_long_ex(arg2);
        
-       cpdf_setTextRenderingMode(pdf, Z_LVAL_P(arg2));
+       cpdf_setTextRenderingMode(pdf, Z_LVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -882,18 +828,18 @@
    Sets horizontal scaling of text */
 PHP_FUNCTION(cpdf_set_horiz_scaling)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
        
-       cpdf_setHorizontalScaling(pdf, (float) Z_DVAL_P(arg2) * 100.0);
+       cpdf_setHorizontalScaling(pdf, (float) Z_DVAL_PP(arg2) * 100.0);
 
        RETURN_TRUE;
 }
@@ -903,40 +849,40 @@
    Sets the text rise */
 PHP_FUNCTION(cpdf_set_text_rise)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
        
-       cpdf_setTextRise(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_setTextRise(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
 /* }}} */
 
-/* {{{ proto void cpdf_set_text_matrix(int pdfdoc, arry matrix)
+/* {{{ proto void cpdf_set_text_matrix(int pdfdoc, array matrix)
    Sets the text matrix */
 PHP_FUNCTION(cpdf_set_text_matrix)
 {
-       pval *arg1, *arg2, *data;
+       zval **arg1, **arg2, *data;
        int id, type, i;
        HashTable *matrix;
        CPDFdoc *pdf;
        float *pdfmatrixptr;
        float pdfmatrix[6];
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_array(arg2);
+       convert_to_array_ex(arg2);
        
        if(zend_hash_num_elements(matrix) != 6) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Text matrix must have 6 
elements");
@@ -970,28 +916,26 @@
    Sets the position of text for the next cpdf_show call */
 PHP_FUNCTION(cpdf_set_text_pos)
 {
-       pval *argv[4];
-       int id, type, argc, mode=0;
+       zval **argv[4];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 3) || (argc > 4))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 3 || argc > 4 || (zend_get_parameters_array_ex(argc,  argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
        
        if(argc > 3) {
-               convert_to_long(argv[3]);
-               mode = Z_LVAL_P(argv[3]);
+               convert_to_long_ex(argv[3]);
+               mode = Z_LVAL_PP(argv[3]);
        }
        if(mode == 1)
-               cpdf_rawSetTextPosition(pdf, (float) Z_DVAL_P(argv[1]), (float) 
Z_DVAL_P(argv[2]));
+               cpdf_rawSetTextPosition(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
        else
-               cpdf_setTextPosition(pdf, (float) Z_DVAL_P(argv[1]), (float) 
Z_DVAL_P(argv[2]));
+               cpdf_setTextPosition(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
 
        RETURN_TRUE;
 }
@@ -1001,18 +945,18 @@
    Sets text rotation angle */
 PHP_FUNCTION(cpdf_rotate_text)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       cpdf_rotateText(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_rotateText(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1022,18 +966,18 @@
    Sets character spacing */
 PHP_FUNCTION(cpdf_set_char_spacing)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       cpdf_setCharacterSpacing(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_setCharacterSpacing(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1043,18 +987,18 @@
    Sets spacing between words */
 PHP_FUNCTION(cpdf_set_word_spacing)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       cpdf_setWordSpacing(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_setWordSpacing(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1064,19 +1008,19 @@
    Returns width of text in current font */
 PHP_FUNCTION(cpdf_stringwidth)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        double width;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
+       convert_to_string_ex(arg2);
 
-       width = (double) cpdf_stringWidth(pdf, Z_STRVAL_P(arg2));
+       width = (double) cpdf_stringWidth(pdf, Z_STRVAL_PP(arg2));
 
        RETURN_DOUBLE((double)width);
 }
@@ -1086,11 +1030,11 @@
    Saves current enviroment */
 PHP_FUNCTION(cpdf_save)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1106,11 +1050,11 @@
    Restores formerly saved enviroment */
 PHP_FUNCTION(cpdf_restore)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1126,19 +1070,19 @@
    Sets origin of coordinate system */
 PHP_FUNCTION(cpdf_translate)
 {
-       pval *arg1, *arg2, *arg3;
+       zval **arg1, **arg2, **arg3;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 3 || getParameters(ht, 3, &arg1, &arg2, &arg3) == 
FAILURE) {
+       if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
-       convert_to_double(arg3);
+       convert_to_double_ex(arg2);
+       convert_to_double_ex(arg3);
 
-       cpdf_rawTranslate(pdf, (float) Z_DVAL_P(arg2), (float) Z_DVAL_P(arg3));
+       cpdf_rawTranslate(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3));
 
        RETURN_TRUE;
 }
@@ -1148,19 +1092,19 @@
    Sets scaling */
 PHP_FUNCTION(cpdf_scale)
 {
-       pval *arg1, *arg2, *arg3;
+       zval **arg1, **arg2, **arg3;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 3 || getParameters(ht, 3, &arg1, &arg2, &arg3) == 
FAILURE) {
+       if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
-       convert_to_double(arg3);
+       convert_to_double_ex(arg2);
+       convert_to_double_ex(arg3);
 
-       cpdf_scale(pdf, (float) Z_DVAL_P(arg2), (float) Z_DVAL_P(arg3));
+       cpdf_scale(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3));
 
        RETURN_TRUE;
 }
@@ -1170,18 +1114,18 @@
    Sets rotation */
 PHP_FUNCTION(cpdf_rotate)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       cpdf_rotate(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_rotate(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1191,23 +1135,23 @@
    Sets flatness */
 PHP_FUNCTION(cpdf_setflat)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       if((Z_LVAL_P(arg2) > 100) && (Z_LVAL_P(arg2) < 0)) {
+       if((Z_LVAL_PP(arg2) > 100) && (Z_LVAL_PP(arg2) < 0)) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter has to between 
0 and 100");
                RETURN_FALSE;
        }
 
-       cpdf_setflat(pdf, (int) Z_DVAL_P(arg2));
+       cpdf_setflat(pdf, (int) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1217,23 +1161,23 @@
    Sets linejoin parameter */
 PHP_FUNCTION(cpdf_setlinejoin)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_long(arg2);
+       convert_to_long_ex(arg2);
 
-       if((Z_LVAL_P(arg2) > 2) && (Z_LVAL_P(arg2) < 0)) {
+       if((Z_LVAL_PP(arg2) > 2) && (Z_LVAL_PP(arg2) < 0)) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter has to between 
0 and 2");
                RETURN_FALSE;
        }
 
-       cpdf_setlinejoin(pdf, Z_LVAL_P(arg2));
+       cpdf_setlinejoin(pdf, Z_LVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1243,23 +1187,23 @@
    Sets linecap parameter */
 PHP_FUNCTION(cpdf_setlinecap)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_long(arg2);
+       convert_to_long_ex(arg2);
 
-       if((Z_LVAL_P(arg2) > 2) && (Z_LVAL_P(arg2) < 0)) {
+       if((Z_LVAL_PP(arg2) > 2) && (Z_LVAL_PP(arg2) < 0)) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter has to be > 0 
and =< 2");
                RETURN_FALSE;
        }
 
-       cpdf_setlinecap(pdf, Z_LVAL_P(arg2));
+       cpdf_setlinecap(pdf, Z_LVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1269,23 +1213,23 @@
    Sets miter limit */
 PHP_FUNCTION(cpdf_setmiterlimit)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       if(Z_DVAL_P(arg2) < 1) {
+       if(Z_DVAL_PP(arg2) < 1) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter has to be >= 
1");
                RETURN_FALSE;
        }
 
-       cpdf_setmiterlimit(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_setmiterlimit(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1295,18 +1239,18 @@
    Sets line width */
 PHP_FUNCTION(cpdf_setlinewidth)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       cpdf_setlinewidth(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_setlinewidth(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1317,20 +1261,20 @@
    Sets dash pattern */
 PHP_FUNCTION(cpdf_setdash)
 {
-       pval *arg1, *arg2, *arg3;
+       zval **arg1, **arg2, **arg3;
        int id, type;
        char buffer[BUFFERLEN];
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 3 || getParameters(ht, 3, &arg1, &arg2, &arg3) == 
FAILURE) {
+       if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_long(arg2);
-       convert_to_long(arg3);
+       convert_to_long_ex(arg2);
+       convert_to_long_ex(arg3);
 
-       snprintf(buffer, BUFFERLEN, "[%d %d] 0", (int) Z_LVAL_P(arg2), (int) 
Z_LVAL_P(arg3));
+       snprintf(buffer, BUFFERLEN, "[%d %d] 0", (int) Z_LVAL_PP(arg2), (int) 
+Z_LVAL_PP(arg3));
        cpdf_setdash(pdf, buffer);
 
        RETURN_TRUE;
@@ -1342,28 +1286,26 @@
    Sets current point */
 PHP_FUNCTION(cpdf_moveto)
 {
-       pval *argv[4];
-       int id, type, argc, mode=0;
+       zval **argv[4];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 3) || (argc > 4))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 3 || argc > 4 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
 
        if(argc > 3) {
-               convert_to_long(argv[3]);
-               mode = Z_LVAL_P(argv[3]);
+               convert_to_long_ex(argv[3]);
+               mode = Z_LVAL_PP(argv[3]);
        }
        if(mode == 1)
-               cpdf_rawMoveto(pdf, (float) Z_DVAL_P(argv[1]), (float) 
Z_DVAL_P(argv[2]));
+               cpdf_rawMoveto(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
        else
-               cpdf_moveto(pdf, (float) Z_DVAL_P(argv[1]), (float) Z_DVAL_P(argv[2]));
+               cpdf_moveto(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
 
        RETURN_TRUE;
 }
@@ -1373,28 +1315,26 @@
    Sets current point */
 PHP_FUNCTION(cpdf_rmoveto)
 {
-       pval *argv[4];
-       int id, type, argc, mode=0;
+       zval **argv[4];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 3) || (argc > 4))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 3 || argc > 4 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
 
        if(argc > 3) {
-               convert_to_long(argv[3]);
-               mode = Z_LVAL_P(argv[3]);
+               convert_to_long_ex(argv[3]);
+               mode = Z_LVAL_PP(argv[3]);
        }
        if(mode == 1)
-               cpdf_rawRmoveto(pdf, (float) Z_DVAL_P(argv[1]), (float) 
Z_DVAL_P(argv[2]));
+               cpdf_rawRmoveto(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
        else
-               cpdf_rmoveto(pdf, (float) Z_DVAL_P(argv[1]), (float) 
Z_DVAL_P(argv[2]));
+               cpdf_rmoveto(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
 
        RETURN_TRUE;
 }
@@ -1404,42 +1344,40 @@
    Draws a curve */
 PHP_FUNCTION(cpdf_curveto)
 {
-       pval *argv[8];
-       int id, type, argc, mode=0;
+       zval **argv[8];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 7) || (argc > 8))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 7 || argc > 8 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
-       convert_to_double(argv[3]);
-       convert_to_double(argv[4]);
-       convert_to_double(argv[5]);
-       convert_to_double(argv[6]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
+       convert_to_double_ex(argv[3]);
+       convert_to_double_ex(argv[4]);
+       convert_to_double_ex(argv[5]);
+       convert_to_double_ex(argv[6]);
 
        if(argc > 7) {
-               convert_to_long(argv[7]);
-               mode = Z_LVAL_P(argv[7]);
+               convert_to_long_ex(argv[7]);
+               mode = Z_LVAL_PP(argv[7]);
        }
        if(mode == 1)
-               cpdf_rawCurveto(pdf, (float) Z_DVAL_P(argv[1]),
-                               (float) Z_DVAL_P(argv[2]),
-                               (float) Z_DVAL_P(argv[3]),
-                               (float) Z_DVAL_P(argv[4]),
-                               (float) Z_DVAL_P(argv[5]),
-                               (float) Z_DVAL_P(argv[6]));
+               cpdf_rawCurveto(pdf, (float) Z_DVAL_PP(argv[1]),
+                               (float) Z_DVAL_PP(argv[2]),
+                               (float) Z_DVAL_PP(argv[3]),
+                               (float) Z_DVAL_PP(argv[4]),
+                               (float) Z_DVAL_PP(argv[5]),
+                               (float) Z_DVAL_PP(argv[6]));
        else
-               cpdf_curveto(pdf, (float) Z_DVAL_P(argv[1]),
-                               (float) Z_DVAL_P(argv[2]),
-                               (float) Z_DVAL_P(argv[3]),
-                               (float) Z_DVAL_P(argv[4]),
-                               (float) Z_DVAL_P(argv[5]),
-                               (float) Z_DVAL_P(argv[6]));
+               cpdf_curveto(pdf, (float) Z_DVAL_PP(argv[1]),
+                               (float) Z_DVAL_PP(argv[2]),
+                               (float) Z_DVAL_PP(argv[3]),
+                               (float) Z_DVAL_PP(argv[4]),
+                               (float) Z_DVAL_PP(argv[5]),
+                               (float) Z_DVAL_PP(argv[6]));
 
        RETURN_TRUE;
 }
@@ -1449,28 +1387,26 @@
    Draws a line */
 PHP_FUNCTION(cpdf_lineto)
 {
-       pval *argv[4];
-       int id, type, argc, mode=0;
+       zval **argv[4];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 3) || (argc > 4))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 3 || argc > 4 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
 
        if(argc > 3) {
-               convert_to_long(argv[3]);
-               mode = Z_LVAL_P(argv[3]);
+               convert_to_long_ex(argv[3]);
+               mode = Z_LVAL_PP(argv[3]);
        }
        if(mode == 1)
-               cpdf_rawLineto(pdf, (float) Z_DVAL_P(argv[1]), (float) 
Z_DVAL_P(argv[2]));
+               cpdf_rawLineto(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
        else
-               cpdf_lineto(pdf, (float) Z_DVAL_P(argv[1]), (float) Z_DVAL_P(argv[2]));
+               cpdf_lineto(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
 
        RETURN_TRUE;
 }
@@ -1480,28 +1416,26 @@
    Draws a line relative to current point */
 PHP_FUNCTION(cpdf_rlineto)
 {
-       pval *argv[4];
-       int id, type, argc, mode=0;
+       zval **argv[4];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 3) || (argc > 4))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 3 || argc > 4 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
 
        if(argc > 3) {
-               convert_to_long(argv[3]);
-               mode = Z_LVAL_P(argv[3]);
+               convert_to_long_ex(argv[3]);
+               mode = Z_LVAL_PP(argv[3]);
        }
        if(mode == 1)
-               cpdf_rawRlineto(pdf, (float) Z_DVAL_P(argv[1]), (float) 
Z_DVAL_P(argv[2]));
+               cpdf_rawRlineto(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
        else
-               cpdf_rlineto(pdf, (float) Z_DVAL_P(argv[1]), (float) 
Z_DVAL_P(argv[2]));
+               cpdf_rlineto(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]));
 
        RETURN_TRUE;
 }
@@ -1511,29 +1445,27 @@
    Draws a circle */
 PHP_FUNCTION(cpdf_circle)
 {
-       pval *argv[5];
-       int id, type, argc, mode=0;
+       zval **argv[5];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 4) || (argc > 5))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 4 || argc > 5 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
-       convert_to_double(argv[3]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
+       convert_to_double_ex(argv[3]);
 
        if(argc > 4) {
-               convert_to_long(argv[4]);
-               mode = Z_LVAL_P(argv[4]);
+               convert_to_long_ex(argv[4]);
+               mode = Z_LVAL_PP(argv[4]);
        }
        if(mode == 1)
-               cpdf_rawCircle(pdf, (float) Z_DVAL_P(argv[1]), (float) 
Z_DVAL_P(argv[2]), (float) Z_DVAL_P(argv[3]));
+               cpdf_rawCircle(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]), (float) Z_DVAL_PP(argv[3]));
        else
-               cpdf_circle(pdf, (float) Z_DVAL_P(argv[1]), (float) Z_DVAL_P(argv[2]), 
(float) Z_DVAL_P(argv[3]));
+               cpdf_circle(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]), (float) Z_DVAL_PP(argv[3]));
 
        RETURN_TRUE;
 }
@@ -1543,31 +1475,29 @@
    Draws an arc */
 PHP_FUNCTION(cpdf_arc)
 {
-       pval *argv[7];
-       int id, type, argc, mode=0;
+       zval **argv[7];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 6) || (argc > 7))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 6 || argc > 7 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
-       convert_to_double(argv[3]);
-       convert_to_double(argv[4]);
-       convert_to_double(argv[5]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
+       convert_to_double_ex(argv[3]);
+       convert_to_double_ex(argv[4]);
+       convert_to_double_ex(argv[5]);
 
        if(argc > 6) {
-               convert_to_long(argv[6]);
-               mode = Z_LVAL_P(argv[6]);
+               convert_to_long_ex(argv[6]);
+               mode = Z_LVAL_PP(argv[6]);
        }
        if(mode == 1)
-               cpdf_rawArc(pdf, (float) Z_DVAL_P(argv[1]), (float) Z_DVAL_P(argv[2]), 
(float) Z_DVAL_P(argv[3]), (float) Z_DVAL_P(argv[4]), (float) Z_DVAL_P(argv[5]), 1);
+               cpdf_rawArc(pdf, (float) Z_DVAL_PP(argv[1]), (float) 
+Z_DVAL_PP(argv[2]), (float) Z_DVAL_PP(argv[3]), (float) Z_DVAL_PP(argv[4]), (float) 
+Z_DVAL_PP(argv[5]), 1);
        else
-               cpdf_arc(pdf, (float) Z_DVAL_P(argv[1]), (float) Z_DVAL_P(argv[2]), 
(float) Z_DVAL_P(argv[3]), (float) Z_DVAL_P(argv[4]), (float) Z_DVAL_P(argv[5]), 1);
+               cpdf_arc(pdf, (float) Z_DVAL_PP(argv[1]), (float) Z_DVAL_PP(argv[2]), 
+(float) Z_DVAL_PP(argv[3]), (float) Z_DVAL_PP(argv[4]), (float) Z_DVAL_PP(argv[5]), 
+1);
 
        RETURN_TRUE;
 }
@@ -1577,36 +1507,34 @@
    Draws a rectangle */
 PHP_FUNCTION(cpdf_rect)
 {
-       pval *argv[6];
-       int id, type, argc, mode=0;
+       zval **argv[6];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 5) || (argc > 6))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 5 || argc > 6 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
-       convert_to_double(argv[3]);
-       convert_to_double(argv[4]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
+       convert_to_double_ex(argv[3]);
+       convert_to_double_ex(argv[4]);
 
        if(argc > 5) {
-               convert_to_long(argv[5]);
-               mode = Z_LVAL_P(argv[5]);
+               convert_to_long_ex(argv[5]);
+               mode = Z_LVAL_PP(argv[5]);
        }
        if(mode == 1)
-               cpdf_rawRect(pdf, (float) Z_DVAL_P(argv[1]),
-                               (float) Z_DVAL_P(argv[2]),
-                               (float) Z_DVAL_P(argv[3]),
-                               (float) Z_DVAL_P(argv[4]));
+               cpdf_rawRect(pdf, (float) Z_DVAL_PP(argv[1]),
+                               (float) Z_DVAL_PP(argv[2]),
+                               (float) Z_DVAL_PP(argv[3]),
+                               (float) Z_DVAL_PP(argv[4]));
        else
-               cpdf_rect(pdf, (float) Z_DVAL_P(argv[1]),
-                               (float) Z_DVAL_P(argv[2]),
-                               (float) Z_DVAL_P(argv[3]),
-                               (float) Z_DVAL_P(argv[4]));
+               cpdf_rect(pdf, (float) Z_DVAL_PP(argv[1]),
+                               (float) Z_DVAL_PP(argv[2]),
+                               (float) Z_DVAL_PP(argv[3]),
+                               (float) Z_DVAL_PP(argv[4]));
 
        RETURN_TRUE;
 }
@@ -1616,11 +1544,11 @@
    Starts new path */
 PHP_FUNCTION(cpdf_newpath)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1636,11 +1564,11 @@
    Close path */
 PHP_FUNCTION(cpdf_closepath)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1656,11 +1584,11 @@
    Close path and draw line along path */
 PHP_FUNCTION(cpdf_closepath_stroke)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1677,11 +1605,11 @@
    Draws line along path path */
 PHP_FUNCTION(cpdf_stroke)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1697,11 +1625,11 @@
    Fills current path */
 PHP_FUNCTION(cpdf_fill)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1717,11 +1645,11 @@
    Fills and stroke current path */
 PHP_FUNCTION(cpdf_fill_stroke)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1738,11 +1666,11 @@
    Close, fill and stroke current path */
 PHP_FUNCTION(cpdf_closepath_fill_stroke)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1760,11 +1688,11 @@
    Clips to current path */
 PHP_FUNCTION(cpdf_clip)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1780,18 +1708,18 @@
    Sets filling color to gray value */
 PHP_FUNCTION(cpdf_setgray_fill)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       cpdf_setgrayFill(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_setgrayFill(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1801,18 +1729,18 @@
    Sets drawing color to gray value */
 PHP_FUNCTION(cpdf_setgray_stroke)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       cpdf_setgrayStroke(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_setgrayStroke(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1822,18 +1750,18 @@
    Sets drawing and filling color to gray value */
 PHP_FUNCTION(cpdf_setgray)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
+       convert_to_double_ex(arg2);
 
-       cpdf_setgray(pdf, (float) Z_DVAL_P(arg2));
+       cpdf_setgray(pdf, (float) Z_DVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -1843,20 +1771,20 @@
    Sets filling color to rgb color value */
 PHP_FUNCTION(cpdf_setrgbcolor_fill)
 {
-       pval *arg1, *arg2, *arg3, *arg4;
+       zval **arg1, **arg2, **arg3, **arg4;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 4 || getParameters(ht, 4, &arg1, &arg2, &arg3, &arg4) 
== FAILURE) {
+       if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, 
+&arg4) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
-       convert_to_double(arg3);
-       convert_to_double(arg4);
+       convert_to_double_ex(arg2);
+       convert_to_double_ex(arg3);
+       convert_to_double_ex(arg4);
 
-       cpdf_setrgbcolorFill(pdf, (float) Z_DVAL_P(arg2), (float) Z_DVAL_P(arg3), 
(float) Z_DVAL_P(arg4));
+       cpdf_setrgbcolorFill(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), 
+(float) Z_DVAL_PP(arg4));
 
        RETURN_TRUE;
 }
@@ -1866,20 +1794,20 @@
    Sets drawing color to RGB color value */
 PHP_FUNCTION(cpdf_setrgbcolor_stroke)
 {
-       pval *arg1, *arg2, *arg3, *arg4;
+       zval **arg1, **arg2, **arg3, **arg4;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 4 || getParameters(ht, 4, &arg1, &arg2, &arg3, &arg4) 
== FAILURE) {
+       if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, 
+&arg4) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
-       convert_to_double(arg3);
-       convert_to_double(arg4);
+       convert_to_double_ex(arg2);
+       convert_to_double_ex(arg3);
+       convert_to_double_ex(arg4);
 
-       cpdf_setrgbcolorStroke(pdf, (float) Z_DVAL_P(arg2), (float) Z_DVAL_P(arg3), 
(float) Z_DVAL_P(arg4));
+       cpdf_setrgbcolorStroke(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), 
+(float) Z_DVAL_PP(arg4));
 
        RETURN_TRUE;
 }
@@ -1889,20 +1817,20 @@
    Sets drawing and filling color to RGB color value */
 PHP_FUNCTION(cpdf_setrgbcolor)
 {
-       pval *arg1, *arg2, *arg3, *arg4;
+       zval **arg1, **arg2, **arg3, **arg4;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 4 || getParameters(ht, 4, &arg1, &arg2, &arg3, &arg4) 
== FAILURE) {
+       if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, 
+&arg4) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_double(arg2);
-       convert_to_double(arg3);
-       convert_to_double(arg4);
+       convert_to_double_ex(arg2);
+       convert_to_double_ex(arg3);
+       convert_to_double_ex(arg4);
 
-       cpdf_setrgbcolor(pdf, (float) Z_DVAL_P(arg2), (float) Z_DVAL_P(arg3), (float) 
Z_DVAL_P(arg4));
+       cpdf_setrgbcolor(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), 
+(float) Z_DVAL_PP(arg4));
 
        RETURN_TRUE;
 }
@@ -1912,23 +1840,23 @@
    Sets transition between pages */
 PHP_FUNCTION(cpdf_set_page_animation)
 {
-       pval *arg1, *arg2, *arg3, *arg4, *arg5, *arg6;
+       zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 6 || getParameters(ht, 6, &arg1, &arg2, &arg3, &arg4, 
&arg5, &arg6) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 6 || zend_get_parameters_ex(6, &arg1, &arg2, &arg3, 
+&arg4, &arg5, &arg6) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_long(arg2);
-       convert_to_double(arg3);
-       convert_to_double(arg4);
-       convert_to_long(arg5);
-       convert_to_long(arg6);
+       convert_to_long_ex(arg2);
+       convert_to_double_ex(arg3);
+       convert_to_double_ex(arg4);
+       convert_to_long_ex(arg5);
+       convert_to_long_ex(arg6);
 
-       cpdf_setPageTransition(pdf, Z_LVAL_P(arg2), Z_DVAL_P(arg3), Z_DVAL_P(arg4),
-                              Z_LVAL_P(arg5), Z_LVAL_P(arg6));
+       cpdf_setPageTransition(pdf, Z_LVAL_PP(arg2), Z_DVAL_PP(arg3), Z_DVAL_PP(arg4),
+                              Z_LVAL_PP(arg5), Z_LVAL_PP(arg6));
 
        RETURN_TRUE;
 }
@@ -1938,11 +1866,11 @@
    Creates PDF doc in memory */
 PHP_FUNCTION(cpdf_finalize)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1958,12 +1886,12 @@
    Returns the internal memory stream as string */
 PHP_FUNCTION(cpdf_output_buffer)
 {
-       pval *arg1;
+       zval **arg1;
        int id, type, lenght;
        CPDFdoc *pdf;
        char *buffer;
 
-       if (ZEND_NUM_ARGS() != 1 || getParameters(ht, 1, &arg1) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -1981,23 +1909,23 @@
    Saves the internal memory stream to a file */
 PHP_FUNCTION(cpdf_save_to_file)
 {
-       pval *arg1, *arg2;
+       zval **arg1, **arg2;
        int id, type;
        CPDFdoc *pdf;
 
-       if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == 
+FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
        CPDF_FETCH_CPDFDOC(arg1);
-       convert_to_string(arg2);
+       convert_to_string_ex(arg2);
 
 #if APACHE
        if(strcmp(Z_STRVAL_P(arg2), "-") == 0)
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Writing to stdout as 
described in the ClibPDF manual is not possible if php is used as an Apache module. 
Use cpdf_output_buffer() instead.");
 #endif
 
-       cpdf_savePDFmemoryStreamToFile(pdf, Z_STRVAL_P(arg2));
+       cpdf_savePDFmemoryStreamToFile(pdf, Z_STRVAL_PP(arg2));
 
        RETURN_TRUE;
 }
@@ -2007,58 +1935,56 @@
    Includes JPEG image */
 PHP_FUNCTION(cpdf_import_jpeg)
 {
-       pval *argv[11];
-       int id, type, argc, mode=0;
+       zval **argv[11];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        float width, height, xscale, yscale;
        CPDFdoc *pdf;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 10) || (argc > 11))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 10 || argc > 11 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_string(argv[1]);
-       convert_to_double(argv[2]);
-       convert_to_double(argv[3]);
-       convert_to_double(argv[4]);
-       convert_to_double(argv[5]);
-       width = (float) Z_DVAL_P(argv[5]);
-       convert_to_double(argv[6]);
-       height = (float) Z_DVAL_P(argv[6]);
-       convert_to_double(argv[7]);
-       xscale = (float) Z_DVAL_P(argv[7]);
-       convert_to_double(argv[8]);
-       yscale = (float) Z_DVAL_P(argv[8]);
-       convert_to_long(argv[9]);
+       convert_to_string_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
+       convert_to_double_ex(argv[3]);
+       convert_to_double_ex(argv[4]);
+       convert_to_double_ex(argv[5]);
+       width = (float) Z_DVAL_PP(argv[5]);
+       convert_to_double_ex(argv[6]);
+       height = (float) Z_DVAL_PP(argv[6]);
+       convert_to_double_ex(argv[7]);
+       xscale = (float) Z_DVAL_PP(argv[7]);
+       convert_to_double_ex(argv[8]);
+       yscale = (float) Z_DVAL_PP(argv[8]);
+       convert_to_long_ex(argv[9]);
 
        if(argc > 10) {
-               convert_to_long(argv[10]);
-               mode = Z_LVAL_P(argv[10]);
+               convert_to_long_ex(argv[10]);
+               mode = Z_LVAL_PP(argv[10]);
        }
        if(mode == 1)
-               cpdf_rawImportImage(pdf, Z_STRVAL_P(argv[1]),
+               cpdf_rawImportImage(pdf, Z_STRVAL_PP(argv[1]),
                                    JPEG_IMG,
-                                   (float) Z_DVAL_P(argv[2]),
-                                   (float) Z_DVAL_P(argv[3]),
-                                   (float) Z_DVAL_P(argv[4]),
+                                   (float) Z_DVAL_PP(argv[2]),
+                                   (float) Z_DVAL_PP(argv[3]),
+                                   (float) Z_DVAL_PP(argv[4]),
                                    &width,
                                    &height,
                                    &xscale,
                                    &yscale,
-                                   Z_LVAL_P(argv[9]));
+                                   Z_LVAL_PP(argv[9]));
        else
-               cpdf_rawImportImage(pdf, Z_STRVAL_P(argv[1]),
+               cpdf_rawImportImage(pdf, Z_STRVAL_PP(argv[1]),
                                    JPEG_IMG,
-                                   (float) Z_DVAL_P(argv[2]),
-                                   (float) Z_DVAL_P(argv[3]),
-                                   (float) Z_DVAL_P(argv[4]),
+                                   (float) Z_DVAL_PP(argv[2]),
+                                   (float) Z_DVAL_PP(argv[3]),
+                                   (float) Z_DVAL_PP(argv[4]),
                                    &width,
                                    &height,
                                    &xscale,
                                    &yscale,
-                                   Z_LVAL_P(argv[9]));
+                                   Z_LVAL_PP(argv[9]));
 
        RETURN_TRUE;
 }
@@ -2069,29 +1995,27 @@
    Includes image */
 PHP_FUNCTION(cpdf_place_inline_image)
 {
-       pval *argv[11];
-       int id, gid, type, argc, mode=0;
+       zval **argv[11];
+       int id, gid, type, mode = 0, argc = ZEND_NUM_ARGS();
        int count, i, j, color;
        CPDFdoc *pdf;
        unsigned char *buffer, *ptr;
        gdImagePtr im;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 8) || (argc > 9))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 8 || argc > 9 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_long(argv[1]);
-       convert_to_double(argv[2]);
-       convert_to_double(argv[3]);
-       convert_to_double(argv[4]);
-       convert_to_double(argv[5]);
-       convert_to_double(argv[6]);
-       convert_to_long(argv[7]);
+       convert_to_long_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
+       convert_to_double_ex(argv[3]);
+       convert_to_double_ex(argv[4]);
+       convert_to_double_ex(argv[5]);
+       convert_to_double_ex(argv[6]);
+       convert_to_long_ex(argv[7]);
 
-       gid=Z_LVAL_P(argv[1]);
+       gid=Z_LVAL_PP(argv[1]);
        im = zend_list_find(gid, &type);
        
        ZEND_GET_RESOURCE_TYPE_ID(CPDF_GLOBAL(le_gd), "gd");
@@ -2106,8 +2030,8 @@
        }
 
        if(argc > 8) {
-               convert_to_long(argv[8]);
-               mode = Z_LVAL_P(argv[8]);
+               convert_to_long_ex(argv[8]);
+               mode = Z_LVAL_PP(argv[8]);
        }
 
        count = 3 * im->sx * im->sy;
@@ -2126,24 +2050,24 @@
 
        if(mode == 1)
                cpdf_placeInLineImage(pdf, buffer, count,
-                                   (float) Z_DVAL_P(argv[2]),
-                                   (float) Z_DVAL_P(argv[3]),
-                                   (float) Z_DVAL_P(argv[4]),
-                                   (float) Z_DVAL_P(argv[5]),
-                                   (float) Z_DVAL_P(argv[6]),
+                                   (float) Z_DVAL_PP(argv[2]),
+                                   (float) Z_DVAL_PP(argv[3]),
+                                   (float) Z_DVAL_PP(argv[4]),
+                                   (float) Z_DVAL_PP(argv[5]),
+                                   (float) Z_DVAL_PP(argv[6]),
                                    im->sx,
                                    im->sy,
-                                   8, 2, Z_LVAL_P(argv[7]));
+                                   8, 2, Z_LVAL_PP(argv[7]));
        else
                cpdf_rawPlaceInLineImage(pdf, buffer, count,
-                                   (float) Z_DVAL_P(argv[2]),
-                                   (float) Z_DVAL_P(argv[3]),
-                                   (float) Z_DVAL_P(argv[4]),
-                                   (float) Z_DVAL_P(argv[5]),
-                                   (float) Z_DVAL_P(argv[6]),
+                                   (float) Z_DVAL_PP(argv[2]),
+                                   (float) Z_DVAL_PP(argv[3]),
+                                   (float) Z_DVAL_PP(argv[4]),
+                                   (float) Z_DVAL_PP(argv[5]),
+                                   (float) Z_DVAL_PP(argv[6]),
                                    im->sx,
                                    im->sy,
-                                   8, 2, Z_LVAL_P(argv[7]));
+                                   8, 2, Z_LVAL_PP(argv[7]));
 
        efree(buffer);
        RETURN_TRUE;
@@ -2155,24 +2079,22 @@
    Sets annotation */
 PHP_FUNCTION(cpdf_add_annotation)
 {
-       pval *argv[11];
-       int id, type, argc, mode=0;
+       zval **argv[11];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
        CPDFannotAttrib attrib;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 7) || (argc > 8))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 7 || argc > 8 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
-       convert_to_double(argv[3]);
-       convert_to_double(argv[4]);
-       convert_to_string(argv[5]);
-       convert_to_string(argv[6]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
+       convert_to_double_ex(argv[3]);
+       convert_to_double_ex(argv[4]);
+       convert_to_string_ex(argv[5]);
+       convert_to_string_ex(argv[6]);
 
        attrib.flags = AF_NOZOOM | AF_NOROTATE | AF_READONLY;
        attrib.border_array = "[0 0 1 [4 2]]";
@@ -2181,24 +2103,24 @@
        attrib.g = 1.00;
        attrib.b = 1.00;
        if(argc > 7) {
-               convert_to_long(argv[7]);
-               mode = Z_LVAL_P(argv[7]);
+               convert_to_long_ex(argv[7]);
+               mode = Z_LVAL_PP(argv[7]);
        }
        if(mode == 1)
-               cpdf_rawSetAnnotation(pdf, (float) Z_DVAL_P(argv[1]),
-                                   (float) Z_DVAL_P(argv[2]),
-                                   (float) Z_DVAL_P(argv[3]),
-                                   (float) Z_DVAL_P(argv[4]),
-                                   Z_STRVAL_P(argv[5]),
-                                   Z_STRVAL_P(argv[6]),
+               cpdf_rawSetAnnotation(pdf, (float) Z_DVAL_PP(argv[1]),
+                                   (float) Z_DVAL_PP(argv[2]),
+                                   (float) Z_DVAL_PP(argv[3]),
+                                   (float) Z_DVAL_PP(argv[4]),
+                                   Z_STRVAL_PP(argv[5]),
+                                   Z_STRVAL_PP(argv[6]),
                                    &attrib);
        else
-               cpdf_setAnnotation(pdf, (float) Z_DVAL_P(argv[1]),
-                                   (float) Z_DVAL_P(argv[2]),
-                                   (float) Z_DVAL_P(argv[3]),
-                                   (float) Z_DVAL_P(argv[4]),
-                                   Z_STRVAL_P(argv[5]),
-                                   Z_STRVAL_P(argv[6]),
+               cpdf_setAnnotation(pdf, (float) Z_DVAL_PP(argv[1]),
+                                   (float) Z_DVAL_PP(argv[2]),
+                                   (float) Z_DVAL_PP(argv[3]),
+                                   (float) Z_DVAL_PP(argv[4]),
+                                   Z_STRVAL_PP(argv[5]),
+                                   Z_STRVAL_PP(argv[6]),
                                    &attrib);
 
        RETURN_TRUE;
@@ -2209,23 +2131,21 @@
    Sets hyperlink */
 PHP_FUNCTION(cpdf_set_action_url)
 {
-       pval *argv[11];
-       int id, type, argc, mode=0;
+       zval **argv[11];
+       int id, type, mode = 0, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
        CPDFannotAttrib attrib;
 
-       argc = ZEND_NUM_ARGS();
-       if((argc < 6) || (argc > 7))
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc < 6 || argc > 7 || (zend_get_parameters_array_ex(argc, argv) == 
+FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_double(argv[1]);
-       convert_to_double(argv[2]);
-       convert_to_double(argv[3]);
-       convert_to_double(argv[4]);
-       convert_to_string(argv[5]);
+       convert_to_double_ex(argv[1]);
+       convert_to_double_ex(argv[2]);
+       convert_to_double_ex(argv[3]);
+       convert_to_double_ex(argv[4]);
+       convert_to_string_ex(argv[5]);
 
        attrib.flags = AF_NOZOOM | AF_NOROTATE | AF_READONLY;
        attrib.border_array = "[0 0 1 [4 0]]";
@@ -2234,22 +2154,22 @@
        attrib.g = 0.00;
        attrib.b = 1.00;
        if(argc > 6) {
-               convert_to_long(argv[6]);
-               mode = Z_LVAL_P(argv[6]);
+               convert_to_long_ex(argv[6]);
+               mode = Z_LVAL_PP(argv[6]);
        }
        if(mode == 1)
-               cpdf_rawSetActionURL(pdf, (float) Z_DVAL_P(argv[1]),
-                                   (float) Z_DVAL_P(argv[2]),
-                                   (float) Z_DVAL_P(argv[3]),
-                                   (float) Z_DVAL_P(argv[4]),
-                                   Z_STRVAL_P(argv[5]),
+               cpdf_rawSetActionURL(pdf, (float) Z_DVAL_PP(argv[1]),
+                                   (float) Z_DVAL_PP(argv[2]),
+                                   (float) Z_DVAL_PP(argv[3]),
+                                   (float) Z_DVAL_PP(argv[4]),
+                                   Z_STRVAL_PP(argv[5]),
                                    &attrib);
        else
-               cpdf_setActionURL(pdf, (float) Z_DVAL_P(argv[1]),
-                                   (float) Z_DVAL_P(argv[2]),
-                                   (float) Z_DVAL_P(argv[3]),
-                                   (float) Z_DVAL_P(argv[4]),
-                                   Z_STRVAL_P(argv[5]),
+               cpdf_setActionURL(pdf, (float) Z_DVAL_PP(argv[1]),
+                                   (float) Z_DVAL_PP(argv[2]),
+                                   (float) Z_DVAL_PP(argv[3]),
+                                   (float) Z_DVAL_PP(argv[4]),
+                                   Z_STRVAL_PP(argv[5]),
                                    &attrib);
 
        RETURN_TRUE;
@@ -2260,25 +2180,23 @@
    Adds outline */
 PHP_FUNCTION(cpdf_add_outline)
 {
-       pval *argv[11];
-       int id, oid, type, argc;
+       zval **argv[11];
+       int id, oid, type, argc = ZEND_NUM_ARGS();
        CPDFdoc *pdf;
        CPDFoutlineEntry *lastoutline;
 
-       argc = ZEND_NUM_ARGS();
-       if(argc != 6)
-               WRONG_PARAM_COUNT;
-       if (getParametersArray(ht, argc, argv) == FAILURE)
+       if(argc != 6 || (zend_get_parameters_array_ex(argc, argv) == FAILURE)) {
                WRONG_PARAM_COUNT;
+       }
 
        CPDF_FETCH_CPDFDOC(argv[0]);
-       convert_to_long(argv[1]);
-       convert_to_long(argv[2]);
-       convert_to_long(argv[3]);
-       convert_to_long(argv[4]);
-       convert_to_string(argv[5]);
+       convert_to_long_ex(argv[1]);
+       convert_to_long_ex(argv[2]);
+       convert_to_long_ex(argv[3]);
+       convert_to_long_ex(argv[4]);
+       convert_to_string_ex(argv[5]);
 
-       oid=Z_LVAL_P(argv[1]);
+       oid=Z_LVAL_PP(argv[1]);
        lastoutline = zend_list_find(oid, &type);
        if(!lastoutline || type!=CPDF_GLOBAL(le_outline)) {
                lastoutline = NULL;
@@ -2287,10 +2205,10 @@
        }
 
        lastoutline = cpdf_addOutlineEntry(pdf, lastoutline,
-                            Z_LVAL_P(argv[2]),
-                            Z_LVAL_P(argv[3]),
-                            Z_LVAL_P(argv[4]),
-                            Z_STRVAL_P(argv[5]),
+                            Z_LVAL_PP(argv[2]),
+                            Z_LVAL_PP(argv[3]),
+                            Z_LVAL_PP(argv[4]),
+                            Z_STRVAL_PP(argv[5]),
                             1, 0.0, 0.0, 0.0, 0.0);
 
        id = zend_list_insert(lastoutline, CPDF_GLOBAL(le_outline));

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to