Author: bernhard
Date: Sat Nov 29 04:36:45 2008
New Revision: 33338
Modified:
trunk/languages/pipp/src/common/guts.pir
trunk/languages/pipp/src/common/php_var.pir
Log:
[Pipp] Add parameter count checks.
Add pipp_var_dump().
Courtesy of Jimmy++ Zhuo
Modified: trunk/languages/pipp/src/common/guts.pir
==============================================================================
--- trunk/languages/pipp/src/common/guts.pir (original)
+++ trunk/languages/pipp/src/common/guts.pir Sat Nov 29 04:36:45 2008
@@ -19,11 +19,40 @@
=cut
.sub 'pipp_defined'
- .param pmc x
- $I0 = defined x
+ .param pmc args :slurpy
+ .local int argc
+
+ argc = args
+ unless argc != 1 goto L1
+ wrong_param_count()
+ .RETURN_NULL()
+ L1:
+ $P0 = shift args
+ $I0 = defined $P0
.return ($I0)
.end
+=item C<void pipp_var_dump(mixed var)>
+
+Dump a PMC
+
+=cut
+
+.sub 'pipp_var_dump'
+ .param pmc args :slurpy
+ .local int argc
+
+ argc = args
+ unless argc != 1 goto L1
+ wrong_param_count()
+ .return()
+ L1:
+ $P0 = shift args
+ _dumper($P0)
+
+ .return ()
+.end
+
=item !EXPORT(symbols, from :named('from') [, to :named('to')] )
Export symbols in namespace C<from> to the namespace given by C<to>.
Modified: trunk/languages/pipp/src/common/php_var.pir
==============================================================================
--- trunk/languages/pipp/src/common/php_var.pir (original)
+++ trunk/languages/pipp/src/common/php_var.pir Sat Nov 29 04:36:45 2008
@@ -84,8 +84,16 @@
# TODO: pass in indent_level, proper escaping
.sub var_dump
- .param pmc a
+ .param pmc args :slurpy
+ .local int argc
+ argc = args
+ unless argc != 1 goto L0
+ wrong_param_count()
+ .return()
+ L0:
+ .local pmc a
+ a = shift args
if null a goto set_null_type
.local string type_of_pmc