Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pqmcG
function name: (null)
number of ops: 25
compiled vars: !0 = $factory
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
90 0 E > NEW $1 'RefactoringGuru%5CFlyweight%5CConceptual%5CFlyweightFactory'
91 1 SEND_VAL_EX <array>
90 2 DO_FCALL 0
3 ASSIGN !0, $1
98 4 INIT_METHOD_CALL !0, 'listFlyweights'
5 DO_FCALL 0
115 6 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CConceptual%5CaddCarToPoliceDatabase'
7 SEND_VAR_EX !0
116 8 SEND_VAL_EX 'CL234IR'
117 9 SEND_VAL_EX 'James+Doe'
118 10 SEND_VAL_EX 'BMW'
119 11 SEND_VAL_EX 'M5'
120 12 SEND_VAL_EX 'red'
115 13 DO_FCALL 0
123 14 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CConceptual%5CaddCarToPoliceDatabase'
15 SEND_VAR_EX !0
124 16 SEND_VAL_EX 'CL234IR'
125 17 SEND_VAL_EX 'James+Doe'
126 18 SEND_VAL_EX 'BMW'
127 19 SEND_VAL_EX 'X1'
128 20 SEND_VAL_EX 'red'
123 21 DO_FCALL 0
131 22 INIT_METHOD_CALL !0, 'listFlyweights'
23 DO_FCALL 0
24 > RETURN 1
Function refactoringguru%5Cflyweight%5Cconceptual%5Caddcartopolicedatabase:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pqmcG
function name: RefactoringGuru\Flyweight\Conceptual\addCarToPoliceDatabase
number of ops: 20
compiled vars: !0 = $ff, !1 = $plates, !2 = $owner, !3 = $brand, !4 = $model, !5 = $color, !6 = $flyweight
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
102 0 E > RECV !0
1 RECV !1
2 RECV !2
3 RECV !3
4 RECV !4
5 RECV !5
107 6 ECHO '%0AClient%3A+Adding+a+car+to+database.%0A'
108 7 INIT_METHOD_CALL !0, 'getFlyweight'
8 INIT_ARRAY ~7 !3
9 ADD_ARRAY_ELEMENT ~7 !4
10 ADD_ARRAY_ELEMENT ~7 !5
11 SEND_VAL_EX ~7
12 DO_FCALL 0 $8
13 ASSIGN !6, $8
112 14 INIT_METHOD_CALL !6, 'operation'
15 INIT_ARRAY ~10 !1
16 ADD_ARRAY_ELEMENT ~10 !2
17 SEND_VAL_EX ~10
18 DO_FCALL 0
113 19 > RETURN null
End of function refactoringguru%5Cflyweight%5Cconceptual%5Caddcartopolicedatabase
Class RefactoringGuru\Flyweight\Conceptual\Flyweight:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pqmcG
function name: __construct
number of ops: 4
compiled vars: !0 = $sharedState
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
16 0 E > RECV !0
18 1 ASSIGN_OBJ 'sharedState'
2 OP_DATA !0
19 3 > RETURN null
End of function __construct
Function operation:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pqmcG
function name: operation
number of ops: 18
compiled vars: !0 = $uniqueState, !1 = $s, !2 = $u
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
21 0 E > RECV !0
23 1 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CConceptual%5Cjson_encode'
2 CHECK_FUNC_ARG
3 FETCH_OBJ_FUNC_ARG $3 'sharedState'
4 SEND_FUNC_ARG $3
5 DO_FCALL 0 $4
6 ASSIGN !1, $4
24 7 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CConceptual%5Cjson_encode'
8 SEND_VAR_EX !0
9 DO_FCALL 0 $6
10 ASSIGN !2, $6
25 11 ROPE_INIT 5 ~9 'Flyweight%3A+Displaying+shared+%28'
12 ROPE_ADD 1 ~9 ~9, !1
13 ROPE_ADD 2 ~9 ~9, '%29+and+unique+%28'
14 ROPE_ADD 3 ~9 ~9, !2
15 ROPE_END 4 ~8 ~9, '%29+state.%0A'
16 ECHO ~8
26 17 > RETURN null
End of function operation
End of class RefactoringGuru\Flyweight\Conceptual\Flyweight.
Class RefactoringGuru\Flyweight\Conceptual\FlyweightFactory:
Function __construct:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 13
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 13
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
filename: /in/pqmcG
function name: __construct
number of ops: 15
compiled vars: !0 = $initialFlyweights, !1 = $state
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
42 0 E > RECV !0
44 1 > FE_RESET_R $2 !0, ->13
2 > > FE_FETCH_R $2, !1, ->13
45 3 > INIT_METHOD_CALL 'getKey'
4 SEND_VAR_EX !1
5 DO_FCALL 0 $4
6 NEW $6 'RefactoringGuru%5CFlyweight%5CConceptual%5CFlyweight'
7 SEND_VAR_EX !1
8 DO_FCALL 0
9 FETCH_OBJ_W $3 'flyweights'
10 ASSIGN_DIM $3, $4
11 OP_DATA $6
44 12 > JMP ->2
13 > FE_FREE $2
47 14 > RETURN null
End of function __construct
Function getkey:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pqmcG
function name: getKey
number of ops: 12
compiled vars: !0 = $state
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
52 0 E > RECV !0
54 1 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CConceptual%5Cksort'
2 SEND_VAR_EX !0
3 DO_FCALL 0
56 4 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CConceptual%5Cimplode'
5 SEND_VAL_EX '_'
6 SEND_VAR_EX !0
7 DO_FCALL 0 $2
8 VERIFY_RETURN_TYPE $2
9 > RETURN $2
57 10* VERIFY_RETURN_TYPE
11* > RETURN null
End of function getkey
Function getflyweight:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 17
Branch analysis from position: 9
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pqmcG
function name: getFlyweight
number of ops: 24
compiled vars: !0 = $sharedState, !1 = $key
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
62 0 E > RECV !0
64 1 INIT_METHOD_CALL 'getKey'
2 SEND_VAR !0
3 DO_FCALL 0 $2
4 ASSIGN !1, $2
66 5 FETCH_OBJ_IS ~4 'flyweights'
6 ISSET_ISEMPTY_DIM_OBJ 0 ~5 ~4, !1
7 BOOL_NOT ~6 ~5
8 > JMPZ ~6, ->17
67 9 > ECHO 'FlyweightFactory%3A+Can%27t+find+a+flyweight%2C+creating+new+one.%0A'
68 10 NEW $9 'RefactoringGuru%5CFlyweight%5CConceptual%5CFlyweight'
11 SEND_VAR_EX !0
12 DO_FCALL 0
13 FETCH_OBJ_W $7 'flyweights'
14 ASSIGN_DIM $7, !1
15 OP_DATA $9
66 16 > JMP ->18
70 17 > ECHO 'FlyweightFactory%3A+Reusing+existing+flyweight.%0A'
73 18 > FETCH_OBJ_R ~11 'flyweights'
19 FETCH_DIM_R ~12 ~11, !1
20 VERIFY_RETURN_TYPE ~12
21 > RETURN ~12
74 22* VERIFY_RETURN_TYPE
23* > RETURN null
End of function getflyweight
Function listflyweights:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 12, Position 2 = 17
Branch analysis from position: 12
2 jumps found. (Code = 78) Position 1 = 13, Position 2 = 17
Branch analysis from position: 13
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 17
filename: /in/pqmcG
function name: listFlyweights
number of ops: 19
compiled vars: !0 = $count, !1 = $flyweight, !2 = $key
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
78 0 E > INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CConceptual%5Ccount'
1 CHECK_FUNC_ARG
2 FETCH_OBJ_FUNC_ARG $3 'flyweights'
3 SEND_FUNC_ARG $3
4 DO_FCALL 0 $4
5 ASSIGN !0, $4
79 6 ROPE_INIT 3 ~7 '%0AFlyweightFactory%3A+I+have+'
7 ROPE_ADD 1 ~7 ~7, !0
8 ROPE_END 2 ~6 ~7, '+flyweights%3A%0A'
9 ECHO ~6
80 10 FETCH_OBJ_R ~9 'flyweights'
11 > FE_RESET_R $10 ~9, ->17
12 > > FE_FETCH_R ~11 $10, !1, ->17
13 > ASSIGN !2, ~11
81 14 CONCAT ~13 !2, '%0A'
15 ECHO ~13
80 16 > JMP ->12
17 > FE_FREE $10
83 18 > RETURN null
End of function listflyweights
End of class RefactoringGuru\Flyweight\Conceptual\FlyweightFactory.
Generated using Vulcan Logic Dumper, using php 8.0.0