--- a/xrange.c	2012/07/28 23:20:09	326859
+++ b/xrange.c	2013/10/06 11:48:38	331707
@@ -175,21 +175,21 @@
 	zend_class_implements(php_xrange_xri_entry TSRMLS_CC, 1, spl_ce_Countable);
 
 	/* Register Class: OddFilterIterator */
-	memset(&ce, sizeof(ce), '\0');
+	memset(&ce, 0, sizeof(ce));
 	INIT_CLASS_ENTRY(ce, PHP_XRANGE_ODDFILTERITERATOR_NAME, php_xrange_OddFilterIterator_functions);
     ce.name_length = strlen(PHP_XRANGE_ODDFILTERITERATOR_NAME); 
 	php_xrange_OddFilterIterator_entry =
 		zend_register_internal_class_ex(&ce, spl_ce_FilterIterator, NULL TSRMLS_CC);
 
 	/* Register Class: EvenFilterIterator */
-	memset(&ce, sizeof(ce), '\0');
+	memset(&ce, 0, sizeof(ce));
 	INIT_CLASS_ENTRY(ce, PHP_XRANGE_EVENFILTERITERATOR_NAME, php_xrange_EvenFilterIterator_functions);
     ce.name_length = strlen(PHP_XRANGE_EVENFILTERITERATOR_NAME); 
 	php_xrange_EvenFilterIterator_entry =
 		zend_register_internal_class_ex(&ce, spl_ce_FilterIterator, NULL TSRMLS_CC);
 
 	/* Register Class: NumericFilterIterator */
-	memset(&ce, sizeof(ce), '\0');
+	memset(&ce, 0, sizeof(ce));
 	INIT_CLASS_ENTRY(ce, PHP_XRANGE_NUMERICFILTERITERATOR_NAME, php_xrange_NumericFilterIterator_functions);
     ce.name_length = strlen(PHP_XRANGE_NUMERICFILTERITERATOR_NAME); 
 	php_xrange_NumericFilterIterator_entry =
@@ -225,13 +225,16 @@
 {
 	if (return_value_used) {
 		int param_count = ZEND_NUM_ARGS();
+		zval ***params;
+		zval *retval = NULL;
+		zval methodName;
 
 		/* because I'm passing the arguments as an array, I'll need to manually
 		   check arg length. */
 		if (param_count != 2 && param_count != 3) WRONG_PARAM_COUNT;
 
 		/* retrieve the function's argument list */
-		zval ***params = (zval ***) safe_emalloc(param_count, sizeof(zval*), 0);
+		params = (zval ***) safe_emalloc(param_count, sizeof(zval*), 0);
 		if (zend_get_parameters_array_ex(param_count, params) == FAILURE) {
 			efree(params);
 			WRONG_PARAM_COUNT;
@@ -244,8 +247,6 @@
 		);
 
 		/* setup call to XRangeIterator's constructor (must do manually) */
-		zval *retval = NULL;
-		zval methodName;
 		ZVAL_STRING(&methodName, "__construct", 0);
 
 		/* pass all arguments through to the XRangeIterator constructor */
@@ -286,6 +287,9 @@
    Return a configured range iterator / generator */
 PHP_METHOD(PHP_XRANGE_XRI_NAME, __construct)
 {
+	xrange_module_storage *internalStorage;
+	double iterations;
+
 	if (!getThis()) {
 		php_error_docref(
 			NULL TSRMLS_CC, E_WARNING, "Don't call the constructor statically"
@@ -293,7 +297,7 @@
 		RETURN_FALSE;
 	}
 
-	xrange_module_storage *internalStorage = PHP_XRANGE_ZOS_GET;
+	internalStorage = PHP_XRANGE_ZOS_GET;
 
 	/* parse argument list */
 	internalStorage->step = 1.0; /* default */
@@ -322,7 +326,7 @@
 	) internalStorage->step *= -1;
 
 	/* calculate the total number of iterations before completion */
-	double iterations = fabs(
+	iterations = fabs(
 		(internalStorage->high - internalStorage->low) / internalStorage->step
 	);
 
@@ -453,6 +457,7 @@
 PHP_METHOD(PHP_XRANGE_ODDFILTERITERATOR_NAME, accept)
 {
 	zval *currentValue;
+	int isOdd;
 
 	// method A: bypass getInnerIterator() call
 	spl_dual_it_object *intern =
@@ -464,7 +469,7 @@
 	// TODO: method B - use getInnerIterator() w/ compilation option
 
 	if (Z_TYPE_P(currentValue) != IS_LONG) convert_to_long(currentValue);
-	int isOdd = Z_LVAL_P(currentValue) & 1;
+	isOdd = Z_LVAL_P(currentValue) & 1;
 
 	zval_ptr_dtor(&currentValue); /* clean-up */
 	RETURN_BOOL(isOdd);
@@ -476,6 +481,7 @@
 PHP_METHOD(PHP_XRANGE_EVENFILTERITERATOR_NAME, accept)
 {
 	zval *currentValue;
+	int isEven;
 
 	/* method A: bypass getInnerIterator() call */
 	spl_dual_it_object *intern =
@@ -487,7 +493,7 @@
 	/* TODO: method B - use getInnerIterator() w/ compilation option */
 
 	if (Z_TYPE_P(currentValue) != IS_LONG) convert_to_long(currentValue);
-	int isEven = !(Z_LVAL_P(currentValue) & 1);
+	isEven = !(Z_LVAL_P(currentValue) & 1);
 
 	zval_ptr_dtor(&currentValue); /* clean-up */
 	RETURN_BOOL(isEven);
@@ -499,6 +505,7 @@
 PHP_METHOD(PHP_XRANGE_NUMERICFILTERITERATOR_NAME, accept)
 {
 	zval *currentValue;
+	int isNumeric;
 
 	/* method A: bypass getInnerIterator() call */
 	spl_dual_it_object *intern =
@@ -509,8 +516,6 @@
 	);
 	/* TODO: method B - use getInnerIterator() w/ compilation option */
 
-	int isNumeric;
-
 	/* this code comes from is_numeric() the implementation. it's here to
 	 * to eliminate the overhead of a PHP function call. */
 	switch (Z_TYPE_P(currentValue)) {
