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

Reply via email to